当我添加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的相对路径?我该如何解决呢?

最佳答案

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


在CSS,JS,图像文件中使用绝对路径,而不要使用相对路径。这意味着您必须确保这些文件的路径以http://或斜杠/开头。
否则,请尝试将其添加到页面的HTML标头中:<base href="/" />,以便从该URL而不是当前URL解析每个相对URL。

关于html - 重写规则htacces在错误的文件夹中搜索CSS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26618174/

10-11 23:25
查看更多