JavaScript脚本标记中的绝对路径

时间:2010-08-18 05:05:18

标签: javascript asp.net script-tag

声明标签时是否有绝对路径?

如果我在一个文件夹中有一个aspx页面(一个级别),这将解决 脚本src="../Scripts/jquery-1.4.1.js" type="text/javascript">

如果我在文件夹中有一个aspx页面(两级),这将解决 脚本src="../../Scripts/jquery-1.4.1.js" type="text/javascript">

如果我在主根目录中有一个aspx页面,这将解决 脚本src="Scripts/jquery-1.4.1.js" type="text/javascript">

我真的需要为每个相对路径创建不同的版本吗?

7 个答案:

答案 0 :(得分:25)

您可能希望使用域根目录中的相对路径:

<script src="/Scripts/jquery-1.4.1.js" type="text/javascript">

答案 1 :(得分:11)

对于 ASP.NET MVC ,在视图中使用Url.Content("~/Scripts/jquery-1.4.1.js")。代字号使您的路径相对于应用程序根目录,如果您作为IIS虚拟应用程序运行,则可以是子文件夹。

如果是 WebForms ,请在页面中尝试Page.ResolveUrl()VirtualPathUtility.ToAbsolute()

(另外,您可能还想考虑loading jQuery from a CDN

答案 2 :(得分:5)

在webforms应用程序中引用脚本和css文件时,请使用

"<%=ResolveUrl("~/path/file.ext") %>"

这类似于MVC中的"@Url.Content("~/path/file.ext")",无论是服务器上的根应用程序还是某个虚拟目录,都将用应用程序基本路径替换〜(应用程序根目录)。如果您使用绝对路径(/path.file.ext),当您的应用程序位于网站的根目录时,它可能适合您,但当您将其移动到虚拟目录时,它可能会停止解析资源。

答案 3 :(得分:4)

如果你需要使用jquery,可以使用 一个绝对路径 来google cdn

http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js

一个好主题:读入的相对于绝对路径的不同形式是什么:

Absolute vs relative URLs

(巧合:我和@Daniel Vassallo参与此帖)

答案 4 :(得分:3)

如果您使用主题,则"<%=ResolveUrl("~/path/file.ext") %>"等代码插入似乎不是一个选项。如果您使用它们,则会出现例外情况。

答案 5 :(得分:1)

我更喜欢使用<base>标记并根据该基本标记提供参考

有点像: http://www.w3schools.com/tags/tag_base.asp

答案 6 :(得分:1)

<script src="/Scripts/jquery-1.4.1.js" type="text/javascript">

这个在网络表单中根本不起作用。 “/”不代表网站根目录。