如何解决具有不同目录级别的页面的javascript路径?

时间:2011-02-15 15:33:10

标签: c# javascript asp.net

我在以下位置有一个javacript文件(例如script.js):

/Website/Shared/Js/script.js

我有两个页面使用这个javascript,但是每个页面似乎都需要一个不同的路径,我无法弄清楚如何解决这两个问题。

其中一个是页面:

/Website/One/Two/Three/page.aspx,这需要路径:

<script src="../../../Shared/Js/script.js" type="text/javascript"></script>

另一页是:

/Website/One/Two/page.aspx,这需要路径:

<script src="../../Shared/Js/script.js" type="text/javascript"></script>

我试图通过

来自根
<script src="../Shared/Js/script.js" type="text/javascript"></script>

<script src="/Shared/Js/script.js" type="text/javascript"></script>

但这些似乎都不起作用。我发现的临时解决方案是将脚本声明两次,这是愚蠢的,但这就是我现在所能想到的。

3 个答案:

答案 0 :(得分:2)

你试过ResolveClientUrl()吗?

<%= ResolveClientUrl("~/Shared/Js/script.js") %> 

这是关于差异的好帖子。

Control.ResolveUrl versus Control.ResolveClientUrl versus VirtualPathUtility.ToAbsolute

答案 1 :(得分:1)

您之前可以使用~,因此服务器可以为您解决此问题。

<script src="~/Shared/Js/script.js" type="text/javascript"></script>

另一种选择是使用base标记,但这也会影响其他资源。

答案 2 :(得分:0)

我确实发现使用:在前面工作得很好。实施例

<script type="text/javascript" 
    src="<%: ResolveUrl("~/Scripts/lib/JQuery 1.7.2/jquery.min.js") %>">
   </script>