如何引用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" />

并将波浪号(以及文件中的所有波浪号)正确展开。