htaccess RewriteRule不会加载js-css库

时间:2016-01-28 16:32:09

标签: javascript php css .htaccess

我在我的php网站上使用htaccess文件作为漂亮的网址。 htaccess文件位于以下位置:

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

当我写127.0.0.1/mysite/param1这样的网址时,就意味着; 127.0.0.1/mysite/index.php?mod=param1和页面加载没有任何问题。

但是,当我写URL 127.0.0.1/mysite/param1**/**时,css和js文件不会加载到页面上。因为我的css和js文件位于inc /目录中并且路径发生了变化。路径转为: 参数1 / INC / jsfile.js

我该如何解决?

2 个答案:

答案 0 :(得分:1)

这是因为您为资产使用了相对链接。将此代码添加到html中的head部分。

<base href="http://domain.com/mysite/" />

或者您可以在路径中添加前导/

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

更新,因为您在子文件夹中使用它。

答案 1 :(得分:0)

感谢Panama Jack和Kneecht,您的回答很有帮助。

首先;我使用了<base>标记。但仍然没有工作,虽然路径是正确的。当我在源代码中点击它时,我检查了chrome,js和css文件在新选项卡中成功打开,但它们没有影响页面。我没有解决它,我认为问题是缓存或类似的东西。

所以我尝试了另一种解决方案:文件的完整路径。

我在index.php文件的顶部定义了基本URL,并在需要时使用它:

define("BASE", "http://127.0.0.1/mysite/");

<link href="<?php echo constant("BASE") ?>inc/style.css" rel="stylesheet" type="text/css">

这很有效。