【问题标题】:htaccess RewriteRule doesnt load js-css librarieshtaccess RewriteRule 不加载 js-css 库
【发布时间】:2016-05-06 03:30:40
【问题描述】:

我在我的 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

我该如何解决?

【问题讨论】:

    标签: javascript php css .htaccess


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 它也经常用于加载带有完整 url 的 CSS / JavaScript 文件,例如example.org/mysite/style.css
    【解决方案2】:

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

    首先;我使用了&lt;base&gt; 标签。但是尽管路径正确,但仍然没有用。当我在源代码中单击它时,我检查了在新选项卡中成功打开的 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">
    

    这行得通。

    【讨论】:

      猜你喜欢
      • 2013-09-19
      • 2017-12-22
      • 2020-05-30
      • 1970-01-01
      • 2011-10-09
      • 2015-01-22
      • 2015-02-05
      • 1970-01-01
      • 2018-08-27
      相关资源
      最近更新 更多