例如,我有网站 http://localhost/site 在IIS中我设置404错误导致重定向到default.aspx 如果我输入类似 http://localhost/site/nodirectory 的内容,(没有这样的文件夹)一切都能正常运行。
但如果我只在结尾添加slah http://localhost/site/nodirectory / ,则页面无法显示css和图片。
图片和CSS位于自己的文件夹中。我尝试了不同的路径:“gfx / logo.gif”,“/ gfx / logo.gif”
有没有人对此有所了解?
答案 0 :(得分:4)
如果您的css和图片是相对路径,请说ResolveClientUrl("~/gfx/logo.gif")
这会向客户端呈现src="gfx/logo.gif"
,带有斜杠的浏览器会认为/nodirectory/gfx/logo.gif
而不是/gfx/logo.gif
}。
要解决此问题,请不要使用.ResolveClientUrl()
,使用.ResolveUrl()
,这会使src呈现src="/gfx/logo.gif"
开始/
使其成为明确的,它是从域名的根源。
如果您正在使用以../
或gfx/
开头的路径,您会看到同样的问题......让它们相对于应用程序库,这样就不会产生混淆。
答案 1 :(得分:0)
有几种选择......
1)
在HTML页面中,创建CSS和脚本相对的路径......
"/scripts/myscript.js"
其中scripts文件夹是根文件夹
之后的第一个文件夹2)
您可以将基本标记添加到您的页面,这意味着所有页面资源都将被视为相对于您指定的根位置...
<base href="http://www.mysite.com">
有关这两个选项的更多信息。
如果可以的话,选项1可能更清晰一些。您明确知道您正在影响的资源。使用基本标记将影响页面上的所有相对路径。图像,链接,脚本,CSS等。如果您开发404页面假设它位于根文件夹中,则第二个选项最有效,但实际上可以从任何不存在的目录中引用它。您只需将根地址放在基本标记中,它就会完全按照您的预期运行。
使用任一选项,图像都可以相对于CSS文件的位置。