如何引用JavaScript文件?
时间:2020-03-05 18:47:28 来源:igfitidea点击:
我正在研究一个C#/ ASP.NET项目,该项目在/ Javascript文件夹中具有所有javascript文件。如果我使用以下语法引用JS文件:src =" / Javascript / jsfile.js",那么,如果将项目部署到URL的根目录,则可以正确提取该文件。
但是,如果将此"网站"部署到主URL的子文件夹中,则将无法使用。因此,解决方案可能是使用相对URL,但也存在一个问题,因为母版页引用了许多javascript文件,并且这些母版页可以在根目录和子文件夹(深度很深)中使用。
有人有解决这个问题的想法吗?
解决方案
回答
如果在" runat = server"部分中引用了JS文件,则可以编写src ="〜/ Javascript / jsfile.js",它将始终有效。
我们也可以在Page_Load(在母版页中)中执行以下操作:
Page.ClientScript.RegisterClientScriptInclude("myJsFile", Page.ResolveClientUrl("~/Javascript/jsfile.js"))
回答
在母版页中尝试以下操作:
<script type="text/javascript" src="<%= Response.ApplyAppPathModifier("~/javascript/globaljs.aspx") %>"></script>
无论出于何种原因,我都发现浏览器对最终标签相当挑剔,因此仅使用/>结束标签似乎不起作用。
回答
@Jared:IE需要那个/ script。 FF不在乎。
回答
全新版本的ASP.NET(3.5 SP1)具有一个漂亮的功能,称为CompositeScript。这使我们可以使用ScriptManager在服务器端引用许多微小的.js小文件,并将它们作为单个.js文件传送到客户端。
对客户端有利,因为它只需要下载一个文件。对我们有好处,因为我们可以在服务器端维护所需的文件。
<asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="True" runat="server"> <Scripts> <asp:ScriptReference Assembly="SampleControl" Name="SampleControl.UpdatePanelAnimation.js" /> </Scripts> </asp:ScriptManager>
回答
我们可能需要看一下FileResolver。这是一个HTTP处理程序,允许我们执行以下操作:
<link rel="stylesheet" href="~/resources/stylesheet.css.ashx" />
并将波浪号(以及文件中的所有波浪号)正确展开。