htaccess RewriteRule 不加载 js-css 库


htaccess RewriteRule doesnt load js-css libraries

我在我的php网站中使用htaccess文件作为漂亮的url。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 这样的 URL 时,这意味着;127.0.0.1/mysite/index.php?mod=param1 并且页面加载没有任何问题。

但是,当我编写 URL 127.0.0.1/mysite/param1**/** 时,css 和 js 文件不会在页面上加载。因为我的 css 和 js 文件在 inc/目录中并且路径更改.路径是这样转的:param1/inc/jsfile.js

我该如何解决?

这是因为

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

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

或者,您可以像这样在路径中添加前导/

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

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

谢谢巴拿马杰克和克尼希特,你的回答很有帮助。

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

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

我在索引.php文件的顶部定义了基本网址,并在需要时使用它:

define("BASE", "http://127.0.0.1/mysite/");
<link href="<?php echo constant("BASE") ?>inc/style.css" rel="stylesheet" type="text/css">

这行得通。