【问题标题】:PHP Routing - stylesheets have no effectPHP 路由 - 样式表无效
【发布时间】:2015-12-30 23:00:03
【问题描述】:

我在 PHP 中创建了一个基本的路由系统。 url 被拆分为一个数组,以便我可以根据 URL 决定显示什么(例如:www.domain.com/page/option/param)。

所以在我的 index.php 中,我为页眉、内容和页脚定义了一个 div,并且 /page/ 确定了要包含在 content-div 中的文件。路由有效,并且 HTML 已加载,但样式表似乎没有。当我 <link> 直接在文件中使用样式表时,它也不起作用(据说可以在正文中链接样式表,属性为 itemprop 而不是rel) - 无论如何,有人知道是什么原因造成的吗?

.htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L]

我的路由使用 $_SERVER['REQUEST_URI'] 获取 URL,然后我删除 /index 并将其余部分拆分为一个数组 - 所有这些都可以正常工作。

提前致谢。

【问题讨论】:

  • 检查你的 标签,看看
  • 它是.. 如果我运行 domain.com/index.php 或 domain.com/,它加载 index.php 就好了。

标签: php .htaccess url routing stylesheet


【解决方案1】:

对于大多数“虚假”或友好 URL 的重写,您需要使用 absolute path 或在 head 部分中使用 base 标记来指定样式表的位置。

例如

<base href="http://example.com" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
//The CSS file above will load from http://example.com/css/style.css

您可以在链接标记中的路径前添加反斜杠,使其从根目录开始。

<link href="/path/to/style.css" rel="stylesheet" type="text/css" />

【讨论】:

  • 谢谢!基本标签有效。可以在 .htaccess 中完成此修复吗?我知道有一种叫做 RewriteBase..
  • RewriteBase 只是告诉 .htaccess 在处理规则时使用什么目录前缀。默认情况下它是根目录或/。这就是为什么您不需要在规则中指定它的原因。这对css问题没有帮助。
猜你喜欢
  • 1970-01-01
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 2015-08-07
  • 1970-01-01
  • 2021-06-03
相关资源
最近更新 更多