【问题标题】:CSS dissapears when adding trailing slash to URL向 URL 添加斜杠时 CSS 消失
【发布时间】:2020-08-22 10:55:33
【问题描述】:

问题是,当我在地址栏 url localhost/register.php/ 添加斜杠时,CSS 消失(不再应用)。 CSS 位于单独目录中的单独文件中。这是结构:

CSS 在header.html<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" /> 中调用 header.html 包含在 index.phpinclude 'includes/header.html';

在 Windows 7 下运行 apache。

【问题讨论】:

    标签: php html css


    【解决方案1】:

    添加斜杠后,您的浏览器会假定 register.php 是另一个目录,而不是文件。指定相对 URL 时,将相对于子目录 register.php/ 查找外部资源(因为斜线)。

    示例

    • 在添加斜线之前:
      css/style.css > http://localhost/css/style.css
    • 添加斜线后:
      css/style.css > http://localhost/register.php/css/style.css

    修复
    要解决此问题,请使用绝对 URL。以下任一项:

    • <link href="/css/style.css" ... />
    • <link href="http://localhost/css/style.css" ... />
    • <base href="/register.php" />(此标签必须在 <head> 中指定

    【讨论】:

    • <base> 建议的小细节:必须在任何相关 URL 之前指定它。如果你在一个之后指定它,例如在<link>标签之后,它仍然会失败。
    • 但是如果它被当作一个目录来处理,为什么它仍然被当作 php 处理呢?
    • @abruski 请注意,我说的是“您的浏览器假定..”。您的浏览器正在尝试包含外部资源(根据对基本路径的良好猜测),而您的服务器正在正确地提供文件。
    • small nit: <link href="/... 一般称为root relative路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    相关资源
    最近更新 更多