繁体   English   中英

htaccess RewriteRule不加载js-css库

[英]htaccess RewriteRule doesnt load js-css libraries

我在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之类的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">

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

感谢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">

这可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM