use*_*133 4 asp.net-2.0 windows-server-2003
我有一个网站,它有一个相对路径到样式表,看起来像这样的"/stylesheets/main.css".现在,当我在Visual Studio中运行该站点时,此工作正常.但是当我将站点部署到Windows Server 2003时,路径停止工作.如果我回到代码并将路径从"/stylesheets/main.css"更改为"stylesheets/main.css",则该站点在服务器上正常工作.我在另一台使用相同路径样式("/stylesheets/main.css")和样式表的服务器上有另一个网站,没有任何问题.我真的不想改变所有的路径,甚至不确定这是代码或服务器的问题.任何帮助或想法都会很棒.谢谢.
har*_*rpo 10
该站点是否部署到域的根目录?如果该网站在
http://example.com/somefolder/
Run Code Online (Sandbox Code Playgroud)
然后路径/stylesheet/main.css将被解释为
http://example.com/stylesheet/main.css
Run Code Online (Sandbox Code Playgroud)
而不是
http://example.com/somefolder/stylesheet/main.css
Run Code Online (Sandbox Code Playgroud)
正如@Kit指出的那样,您可以通过解析应用程序文件夹的路径来解决此问题.我经常在ASP.NET中完成此操作,如下所示:
<link rel="stylesheet" type="text/xss" href="<%= ResolveUrl("~/stylesheet/main.css") %>"/>
Run Code Online (Sandbox Code Playgroud)
如果这不是问题,那么你将不得不提供更多细节.
在 ASP.NET 中,很多时候你需要使用波浪号 ( ~) 来获取应用程序的根目录,所以你的路径看起来像~/stylesheets/main.css
当您指定以/您开头的路径表示服务器根目录时,如果您的站点位于虚拟目录中,则不会被考虑在内,但如果该站点作为默认站点托管,则该路径将符合条件:
示例:以foo.net托管在名为的虚拟目录中的站点命名的服务器app
/stylesheet将转换为foo.net/stylesheet 不 foo.net/app/stylesheet
| 归档时间: |
|
| 查看次数: |
15842 次 |
| 最近记录: |