我有一个ASP.net主页。在这个大师中,我定义了所有的CSS和javascript文件。我也有一些图像,一些按钮和超链接。
所有的URL都被声明为相对的,即“/scripts/ian.js”
如果此站点是根网站,则一切正常,但是我需要它在虚拟目录中工作。
我的问题是,当我将该网站放置在根站点下的虚拟目录中时,我所有的链接都指向该根站点。所以我的链接指向www.root.com/scripts/ian.js,但它应该指向www.root.com/virtualDir/scripts/ian.js
我以为 header 中的Base Href标签会有所帮助,但到目前为止,它似乎仍然无济于事。当我将鼠标悬停在所有链接上时,所有链接仍指向根网站。
我想要的是IIS或配置文件中的一个设置,我可以设置一个根URL,并且母版页或内容页上的任何图像,脚本或链接都将指向正确的位置。
欢迎任何建议或想法。
谢谢
最佳答案
这些似乎是您正在使用的绝对URL,而不是相对URL,这可能就是<base />
标记未达到预期效果的原因:
-来自http://www.w3.org/TR/html401/struct/links.html#h-12.4
您可以尝试从网址中删除开头的“/”,看看是否可行?
失败的话,我倾向于使用ResolveClientUrl来解决这样的问题,您将以与其他人建议的相同方式使用ResolveUrl:
<script type="text/javascript" src="<%= ResolveClientUrl("~/path/to/js") %>"></script>
...
<img src="<%= ResolveClientUrl("~/path/to/img") %>" alt="..." />
希望这可以帮助。