Dav*_*Dev 6 javascript asp.net virtual-directory
我有一些引用javascript文件的页面.
该应用程序存在于虚拟目录中,即http://localhost/MyVirtualDirectory/MyPage.aspx
所以本地我引用文件如下:
<script src="/MyVirtualDirectory/Scripts/MyScript.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
但是生产设置不同.该应用程序在生产中作为自己的网站存在,因此我不需要包含对虚拟目录的引用.这个问题是我需要修改包含javascript引用的每个文件,所以它看起来如下所示:
<script src="../Scripts/MyScript.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
我尝试在我的本地设置中以这种方式引用文件,但它不起作用.
我完全错了吗?有人能告诉我我需要做什么吗?
谢谢
hun*_*ter 19
使用ResolveUrl("〜/")
<script src="<%=ResolveUrl("~/scripts/myscript.js") %>" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
〜/将以虚拟或其他方式告诉您应用程序的根目录
以前的答案似乎假设该Scripts目录始终作为应用程序根目录的子目录存在。如果这个假设是正确的,并且页面也位于根目录,那么您之前的两个标签都可以是简单的:
<script src="Scripts/MyScript.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
但我对您的第二个示例的理解是,它Scripts 并不总是您的应用程序根目录的子目录(因为一../开始就上升了一个级别,因此Scripts将是您的应用程序根目录的对等目录)。也就是说,你确实说过第二个例子不起作用。:-) 但如果确实如此,我强烈建议调整一种环境或另一种环境,以使相对路径一致,然后始终使用上述相对路径。
ResolveUrl据我所知,使用的唯一原因是应用程序中的页面位于文件夹结构中,并且标签可能出现在根目录的页面或“子目录”的页面中。如果是这样,您可以ResolveUrl在这两种情况下使用,这样您就有了一个锚点。我从不以这种方式创作东西,我总是确保我知道页面在层次结构中的位置(如果需要层次结构)并为当前文档使用适当的相对路径。
| 归档时间: |
|
| 查看次数: |
21079 次 |
| 最近记录: |