我有一个母版页,其中包含对js文件夹的javascript文件的引用。 文件和母版页都在根目录中。
我的许多表单都在不同的文件夹中,如
Root>first>abc.aspx
Root>second>def.aspx
Root>second>anotherFolder>def.aspx
我保留了这样的引用
<script type="text/javascript" src="js/Check.js"></script>
我还尝试了src="<%= Page.ResolveUrl("~/js/Check.js") %>"
和src="~/js/Check.js"
。使用Page.ResolveUrl
和Server.ResolveUrl
页面时显示错误。
我需要做什么,以便任何目录中的任何表单都能获得文件的引用。
我不希望以各种形式../
和../../
。
答案 0 :(得分:4)
<script type="text/javascript" src="/js/Check.js"></script>
你可以使用“/” - &gt;网站根
答案 1 :(得分:1)
如果您正在运行Visual Studio的内部服务器进行调试,请先删除它坚持使用的虚拟文件夹。
通过在VS Solution explorer中选择站点的根目录,然后右键单击并选择“属性窗口” - 在属性中将“虚拟路径”从“AppName”更改为/
这条虚拟路径会对各种路径造成严重破坏。我发现如果我不在VS中进行此更改,那么当我将所有路径都工作时,当我将网站置于直播状态时,它们将无法工作没有使用虚拟站点的服务器。
然后使用src中的根<script type="text/javascript" src="/js/Check.js"></script>
将JS引用设置为/
。
<强>更新强>
如果你真的想要保留虚拟文件夹,那么你可以试试这个 - 使用ResolveClientUrl()
:
首先,将Runat="Server"
添加到<head>
<head runat="server" id="myhead">
<script type="text/javascript" src='<%=ResolveClientUrl("~/js/check.js") %>' />