【问题标题】:php local machine pathsphp本地机器路径
【发布时间】:2011-08-24 05:10:37
【问题描述】:

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

这在本地不起作用:

href="/design/layout.css"

这将(删除第一个斜线)

href="design/layout.css"

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

【问题讨论】:

    标签: php path local slash


    【解决方案1】:

    如果在相对 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-25
      • 2011-10-23
      • 1970-01-01
      • 2019-05-17
      • 2011-11-02
      相关资源
      最近更新 更多