css和图像的路径

时间:2010-03-01 12:52:41

标签: asp.net path

例如,我有网站 http://localhost/site 在IIS中我设置404错误导致重定向到default.aspx 如果我输入类似 http://localhost/site/nodirectory 的内容,(没有这样的文件夹)一切都能正常运行。

但如果我只在结尾添加slah http://localhost/site/nodirectory / ,则页面无法显示css和图片。

图片和CSS位于自己的文件夹中。我尝试了不同的路径:“gfx / logo.gif”,“/ gfx / logo.gif”

有没有人对此有所了解?

2 个答案:

答案 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文件的位置。