C# 如何从ascx设置脚本的相对路径
我已创建自定义DNN模块。C# 如何从ascx设置脚本的相对路径,c#,jquery,asp.net,dotnetnuke,dotnetnuke-module,C#,Jquery,Asp.net,Dotnetnuke,Dotnetnuke Module,我已创建自定义DNN模块。 我想在其中使用插件。 因此,在VS中的模块项目中,我创建了脚本文件夹,并将JS文件放入其中。 在ascx文件视图中,我添加了: <script src="Scripts/jquery.infinitescroll.min.js"></script> <script src="Scripts/masonry.pkgd.js"></script> <script src="Scripts/imagesloaded.js
我想在其中使用插件。
因此,在VS中的模块项目中,我创建了脚本文件夹,并将JS文件放入其中。
在ascx文件视图中,我添加了:
<script src="Scripts/jquery.infinitescroll.min.js"></script>
<script src="Scripts/masonry.pkgd.js"></script>
<script src="Scripts/imagesloaded.js"></script>
在DNN中添加和设置脚本的相对路径的方法是什么?请尝试包括资源文件的完整路径,请按照上的说明: 在您的站点中包含砌体脚本
例如:
<script src="/desktopmodules/com.demo.masonry/Scripts/jquery.infinitescroll.min.js"></script>
<script src="/desktopmodules/com.demo.masonry/Scripts/masonry.pkgd.js"></script>
<script src="/desktopmodules/com.demo.masonry/Scripts/imagesloaded.js"></script>
尝试按照以下页面上的说明包括资源文件的完整路径: 在您的站点中包含砌体脚本
例如:
<script src="/desktopmodules/com.demo.masonry/Scripts/jquery.infinitescroll.min.js"></script>
<script src="/desktopmodules/com.demo.masonry/Scripts/masonry.pkgd.js"></script>
<script src="/desktopmodules/com.demo.masonry/Scripts/imagesloaded.js"></script>
您应该使用客户端依赖关系框架在DotNetNuke中包含脚本(该功能是在DNN 6.1+中添加的)。它将控制优先级,并允许框架将脚本组合在一起以获得更有效的负载 信息的wiki条目如下所示: 从本质上讲,这很简单:
<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>
<dnn:DnnJsInclude runat="server" FilePath="~/Resources/Shared/Scripts/jquery/jquery.hoverIntent.min.js" />
您应该使用客户端依赖关系框架在DotNetNuke中包含脚本(该功能是在DNN 6.1+中添加的)。它将控制优先级,并允许框架将脚本组合在一起以获得更有效的负载 信息的wiki条目如下所示: 从本质上讲,这很简单:
<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>
<dnn:DnnJsInclude runat="server" FilePath="~/Resources/Shared/Scripts/jquery/jquery.hoverIntent.min.js" />
对于自定义模块中的脚本或css,我通常在控件的PreRender事件中调用ClientResourceManager。我使用ControlPath获取模块控件的相对路径,以引用脚本。例如:
protected override void OnPreRender(EventArgs e)
{
ClientResourceManager.RegisterStyleSheet(this.Page, this.ControlPath + "css/view.css");
ClientResourceManager.RegisterScript(this.Page, this.ControlPath + "js/view.js");
}
对于自定义模块中的脚本或css,我通常在控件的PreRender事件中调用ClientResourceManager。我使用ControlPath获取模块控件的相对路径,以引用脚本。例如:
protected override void OnPreRender(EventArgs e)
{
ClientResourceManager.RegisterStyleSheet(this.Page, this.ControlPath + "css/view.css");
ClientResourceManager.RegisterScript(this.Page, this.ControlPath + "js/view.js");
}
仍然是404,但是演示丢失了路径。我已经更新了我的答案,包括
~/
-试试看。显然,只有当脚本
文件夹直接驻留在根目录下(我假设是这样)时,这才有效。现在仍然是404,路径是:GEThttp://dnn7site/Demos/~/Scripts/jquery.infinitescroll.min.js 404(未找到)砌体:750 GEThttp://dnn7site/Demos/~/Scripts/imagesloaded.js 404(未找到)砖石工程:752http://dnn7site/Demos/~/Scripts/massy.pkgd.js 404(未找到)
路径应该是什么?您可以使用浏览器地址栏手动浏览到脚本文件吗?在浏览器中,我可以这样打开文件:http://dnn7site/desktopmodules/com.demo.masonry/Scripts/masonry.pkgd.js
仍然是404,但是演示从path中丢失。我已经更新了我的答案,包括~/
-试试看。显然,只有当脚本
文件夹直接驻留在根目录下(我假设是这样)时,这才有效。现在仍然是404,路径是:GEThttp://dnn7site/Demos/~/Scripts/jquery.infinitescroll.min.js 404(未找到)砌体:750 GEThttp://dnn7site/Demos/~/Scripts/imagesloaded.js 404(未找到)砖石工程:752http://dnn7site/Demos/~/Scripts/massy.pkgd.js 404(未找到)
路径应该是什么?您可以使用浏览器地址栏手动浏览到脚本文件吗?在浏览器中,我可以这样打开文件:http://dnn7site/desktopmodules/com.demo.masonry/Scripts/masonry.pkgd.js