2014-09-29 117 views
0

我是Sitefinity的新手。我们正在尝试创建一些自定义母版页,其中我们需要包含一些JavaScript文件。所以我们创建了一个项目如下: enter image description hereSitefinity将JavaScript添加到自定义主页面

在Default.Master中,我们试图添加.js文件,如下所示。但它不工作

<%@ Master Language="C#" %> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
    <title></title> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 


    <script src="../Scripts/jquery-1.9.1.min.js" type="text/javascript"></script> 
    <script src="~/Scripts/jquery-1.9.1.min.js" type="text/javascript"></script> 
    <script src="/Scripts/jquery-1.9.1.min.js" type="text/javascript"></script> 

</head> 

当我查看HTML页面的源它增加了参考如下

<script src="../jquery-1.9.1.min.js" type="text/javascript"></script> 
<script src="core.min.js" type="text/javascript"></script> 
<script src="~/jquery-1.9.1.min.js" type="text/javascript"></script> 

但没有一样工作的。

我甚至把主题(全局文件夹).js文件,即使这是行不通的。

干杯

回答

2

随着Sitefinity的项目,我认为你需要遵循结构规则,下面是样本: Sitefinity Project Structure

改变结构后,就可以加载的js或CSS在这样的母版页: 例1:加载的js

<script src="/Sitefinity/WebSiteTemplates/SunwayTemplate/JS/modernizr-2.7.1.min.js"></script> 

出2:负载的CSS

<link href="/Sitefinity/WebSiteTemplates/SunwayTemplate/App_Themes/SunwayTheme/Global/style.css" rel="stylesheet"> 

您可以阅读ABO更多信息ut Sitefinity结构在: http://docs.sitefinity.com/website-templates-file-structure

2
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI" TagPrefix="sf" %> <sf:ResourceLinks ID="resourcesLinks" runat="server"> 
<sf:ResourceFile JavaScript Library="JQuery" /> 
<sf:ResourceFile Name="~/Widgets/myJavascript.js" /> 
</sf:ResourceLinks> 

http://www.sitefinity.com/documentation/documentationarticles/define-the-resourcelinks-widget

http://www.sitefinity.com/blogs/gabe-sumners-blog/2011/09/01/how_to_use_jquery_and_other_javascript_libraries_in_sitefinity

0

最近我有一个非常类似的问题。尽管让js文件包含正确的脚本文件的顺序正在重新组织。

我发现一个更可靠的方法来包括我的脚本是添加一个代码隐藏文件到我的母版页并指定以下;

protected void Page_Load(object sender, EventArgs e) 
{ 
InitPageScripts(); 
} 

在我的InitPageScripts方法中,我有以下内容;

private void InitPageScripts() 
{ 
//Get the reference for the RadScriptManager that is on the master page 
var scriptManager = ScriptManager.GetCurrent(Page); 
if (scriptManager == null) return; 
PageManager.ConfigureScriptManager(Page, ScriptRef.JQuery); 
scriptManager.Scripts.Add(new ScriptReference { Path = "~/js/myscript.js" });    
} 
1

我通常使用RadScriptManager。

<form id="aspnetForm" runat="server"> 
    <telerik:RadScriptManager ID="RadScriptManager1" CompositeScript-ScriptMode="Release" EnableScriptGlobalization="True" EnableScriptLocalization="False" runat="server" CompositeScript-NotifyScriptLoaded="True" LoadScriptsBeforeUI="True" OutputCompression="Forced" AjaxFrameworkMode="Disabled"> 
     <CompositeScript> 
      <Scripts> 
       <asp:ScriptReference Name="Telerik.Sitefinity.Resources.Scripts.MicrosoftAjax.js" Assembly="Telerik.Sitefinity.Resources" /> 
       <asp:ScriptReference Name="Telerik.Sitefinity.Resources.Scripts.MicrosoftAjaxWebForms.js" Assembly="Telerik.Sitefinity.Resources" /> 
       <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" /> 
       <asp:ScriptReference Path="~/Scripts/Modernizr-2.6.2.min.js" /> 
       <asp:ScriptReference Name="Telerik.Sitefinity.Resources.Scripts.jquery-1.8.3.min.js" Assembly="Telerik.Sitefinity.Resources" /> 
       <asp:ScriptReference Name="Telerik.Sitefinity.Resources.Scripts.jquery-ui-1.9.2.custom.min.js" Assembly="Telerik.Sitefinity.Resources" /> 
       <asp:ScriptReference Path="~/Scripts/bootstrap.min.js" /> 
      </Scripts> 
     </CompositeScript> 
     <Scripts> 
      <asp:ScriptReference Path="~/Scripts/project.js" /> 
     </Scripts> 
    </telerik:RadScriptManager> 

    ... 

</form> 

这将加载正确的顺序一切,我可以很容易地单独添加第三方库的mimimized文件和我自己的脚本,方便调试。

0

我通常会做的是把母版页下的项目的根目录,也有根下的/ js文件夹以及。

因此,在母版页中,我简单地引用/js/file.js,它始终正常工作。

永远不用打扰使用“默认”Sitefinity结构

相关问题