【问题标题】:Rewrite Rule htacces searches for css in wrong folder重写规则 htaccess 在错误的文件夹中搜索 css
【发布时间】:2014-10-29 05:33:06
【问题描述】:

当我添加我的 HTaccess 重写规则时,我使用实习生使用的 scr 属性的路径正在转移。对于第一条规则,所有 CSS 都可以正常工作,但是当它在链接中添加第二个变量时,我的 css 文件和脚本文件突然从错误的文件夹中调用。

Options +FollowSymLinks
RewriteEngine On
RewriteBase /jellyfish_rework/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ index.php?p=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ index.php?p=$1&t=$2 [L]

在第一条规则中,一切都完美无缺。例如,当我的链接带有一个变量(页面的 p 变量)时,它可以正常工作。这种情况下的链接最终是http://localhost/jellyfish_rework/blog。并且正常调用css和脚本

<link href="css/jellyfish.css" rel="stylesheet" type="text/css"> 将成为我的 css 样式表的链接。

但是,当我的 t(代表标题)变量被填写时,例如当我试图在我的博客中查找特定帖子时,我的整个链接都会改变。 Chrome 控制台将在http://localhost/jellyfish_rework/artikel/Lancering-van-onze-nieuwe-website 上输出以下内容:

GET http://localhost/jellyfish_rework/artikel/css/font-awesome.min.css  Lancering-van-onze-nieuwe-website:23
GET http://localhost/jellyfish_rework/artikel/css/jellyfish.css  Lancering-van-onze-nieuwe-website:24
GET http://localhost/jellyfish_rework/artikel/css/bootstrap.min.css  Lancering-van-onze-nieuwe-website:22
GET http://localhost/jellyfish_rework/artikel/css/animate.css  Lancering-van-onze-nieuwe-website:25
GET http://localhost/jellyfish_rework/artikel/js/custom/knob.js  Lancering-van-onze-nieuwe-website:168
GET http://localhost/jellyfish_rework/artikel/js/bootstrap/bootstrap.min.js  Lancering-van-onze-nieuwe-website:166
GET http://localhost/jellyfish_rework/artikel/js/custom/wow.min.js  Lancering-van-onze-nieuwe-website:167
GET http://localhost/jellyfish_rework/artikel/js/custom/jellyfish.js  Lancering-van-onze-nieuwe-website:169 

为什么要将 /article/ 添加到我的脚本和 css 的相对路径中?我该如何解决这个问题?

【问题讨论】:

    标签: html css .htaccess


    【解决方案1】:

    由于您在 css/js/images 中使用了相对 URL,您遇到了这个问题。您可以通过以下方式之一修复它:

    1. 在您的 css、js、图像文件中使用绝对路径而不是相对路径。这意味着您必须确保这些文件的路径以 http:// 或斜杠 / 开头。

    2. 否则,请尝试在页面的 HTML 标头中添加:<base href="/" />,以便从该 URL 而非当前 URL 解析每个相对 URL。

    【讨论】:

    • Jep,当您发布此内容时,我自己也找到了答案。我在标题标签中添加了<BASE href="http://localhost/jellyfish_rework/">,它现在工作正常。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2015-12-25
    • 2017-07-16
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 2016-03-30
    • 2012-08-20
    相关资源
    最近更新 更多