我如何引用javascript文件?

时间:2008-09-04 05:33:15

标签: asp.net javascript

我正在开发一个包含/ Javascript文件夹中所有javascript文件的C#/ ASP.NET项目。如果我使用以下语法引用JS文件:src =“/ Javascript / jsfile.js”,那么如果将项目部署到URL的根目录,则会正确获取该文件。

但是,如果将此“网站”部署到主网址的子文件夹,则无法使用。所以解决方案可能是使用相对URL - 但是也存在问题,因为母版页引用了许多javascript文件,这些母版页可以被根页面和子文件夹中的页面使用很多层次。

有人有解决这个问题的想法吗?

5 个答案:

答案 0 :(得分:11)

如果您在“runat = server”部分引用JS文件,则可以编写src =“〜/ Javascript / jsfile.js”,它将始终有效。

您也可以在Page_Load(在您的母版页中)执行此操作:

Page.ClientScript.RegisterClientScriptInclude("myJsFile", Page.ResolveClientUrl("~/Javascript/jsfile.js"))

答案 1 :(得分:4)

在母版页中尝试这样的事情:

<script type="text/javascript" src="<%= Response.ApplyAppPathModifier("~/javascript/globaljs.aspx") %>"></script>

无论出于何种原因,我发现浏览器对最终标签非常挑剔,所以只需用/&gt;结束标签即可。似乎不起作用。

答案 2 :(得分:4)

全新版本的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>

答案 3 :(得分:0)

@Jared:IE需要/脚本。 FF不在乎。

答案 4 :(得分:0)

您可能需要查看FileResolver。它是一个HTTP处理程序,允许您执行此操作:

<link rel="stylesheet" href="~/resources/stylesheet.css.ashx" />

并且正确扩展了波浪号(以及文件中的任何波浪号)。