0

我已经下载了一个完整的网站,将为客户升级。
我注意到代码无法找到文件(css、js、图像等)。路径是这样编码的——开头有一个正斜杠// 从每个 href、src 或其他任何解决本地机器上的问题的开头删除这些,
但当然会在网上搞砸。

这在本地不起作用:

href="/design/layout.css"

这将(删除第一个斜线)

href="design/layout.css"

造成这种差异的原因是什么?是否需要配置某种系统变量以使两台服务器以相同的方式处理路径?

4

1 回答 1

3

如果/在相对 URL 的开头有 ,则将其解析为域的 Web 根目录的绝对路径。

绝对路径示例(以 / 开头):

在 domain.com/test/other/path/test.html 上的文件中
href="/design/layout.css"-> 浏览器搜索domain.com/design/layout.css

在 domain/test.html 的文件中
href="/design/layout.css"-> 浏览器搜索domain.com/design/layout.css

结论绝对路径
浏览器两次在同一个地方搜索。

示例相对路径(开头没有 /):

在 domain.com/test/other/path/test.html 上的文件中
href="design/layout.css"-> 浏览器搜索domain.com/test/other/path/design/layout.css

在 domain/test.html 的文件中
href="design/layout.css"-> 浏览器搜索domain.com/design/layout.css

结论相对路径
浏览器在不同的地方搜索。


解决方案

您可以在 .htaccess 或.conf 文件中添加Apache Alias ,这会强制服务器在请求第一个路径时输出第二个路径的内容。在您的情况下,Apache 从新路径而不是 /design/ 输出 CSS 文件

Apache 别名示例

Alias /design /your/new/path/design
于 2011-05-12T15:06:52.597 回答