当我添加我的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的相对路径中?我该如何解决这个问题?
答案 0 :(得分:1)
由于您在css / js / images中使用了相对URL,因此遇到此问题。您可以通过以下方式之一修复它:
在css,js,images文件中使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以http://
或斜杠/
开头。
否则,请尝试在页面的HTML标题中添加此标题:<base href="/" />
,以便从该网址解析每个相对网址,而不是当前网址。