我有一些引用javascript文件的页面.
该应用程序存在于虚拟目录中,即http://localhost/MyVirtualDirectory/MyPage.aspx@H_502_3@
<script src="/MyVirtualDirectory/Scripts/MyScript.js" type="text/javascript"></script>
但是生产设置不同.该应用程序在生产中作为自己的网站存在,因此我不需要包含对虚拟目录的引用.这个问题是我需要修改包含javascript引用的每个文件,所以它看起来如下所示:@H_502_3@
<script src="../Scripts/MyScript.js" type="text/javascript"></script>
我尝试在我的本地设置中以这种方式引用文件,但它不起作用.@H_502_3@
我完全错了吗?有人可以告诉我我需要做什么吗?@H_502_3@
谢谢@H_502_3@
解决方法
Previous answers似乎假设Scripts目录始终作为应用程序根目录的子目录存在.如果这个假设是正确的,并且如果页面也在根目录下,那么您的两个早期标记可以简单地:
<script src="Scripts/MyScript.js" type="text/javascript"></script>
但是我读到的第二个例子是Scripts并不总是应用程序根目录的子目录(因为开头的../会提升一个级别,因此Scripts将成为应用程序根目录的对等体).也就是说,你确实说第二个例子不起作用. :-)但如果确实如此,我强烈建议调整一个环境或另一个环境以使相对路径一致,然后始终使用上面的相对路径.@H_502_3@
据我所知,使用ResolveUrl的唯一原因是应用程序中的页面是否在文件夹结构中,并且标记可能出现在根目录中的页面中或“子目录”中的页面中.如果是这样,您可以在两种情况下使用ResolveUrl,因此您有一个锚点.我从不以这种方式创作,我始终确保我知道页面在层次结构中的位置(如果需要有层次结构)并使用适当的相对路径作为当前文档.@H_502_3@