【问题标题】:.htaccess is renaming my css, img, and js.htaccess 正在重命名我的 css、img 和 js
【发布时间】:2017-06-23 07:53:42
【问题描述】:

我正在尝试从 url 路由单个博客文章

网址如下所示:http://localhost/news/post/1/post-title-slug

还有我的.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]`

而我的路由文件我目前正在使用一个名为nezamy/route的库

$route->get('/post/?/?', function($postid,$page) {
    include 'post.php';
});

当我这样做时,我的 cssjsimages 也被重命名为:http://localhost/news/post/1/css/main.css

【问题讨论】:

  • 那是因为你从相对位置加载css、js文件。您需要创建一个函数来获取将重写路径作为参数的基本 url,并从该基本路径加载 css、js 文件。

标签: php css .htaccess mod-rewrite url-routing


【解决方案1】:

使用 htaccess 重写时,您需要添加 css/js 文件及其绝对位置。为此,您可以在 php 变量中定义基本 url,如下所示:

$base_url = 'http://localhost/';

然后在你调用 css/js 文件的地方引用它

<link rel="stylesheet" type="text/css" href="<?php echo $base_url; ?>css/main.css">

【讨论】:

    【解决方案2】:

    Prateek 的回答很好,但我通过添加解决了类似的问题。

    <base href="/"/> 
    

    在我的头标签中。

    或者您可以尝试不同的文件夹,例如:

    <base href="/web/"/> 
    

    等等

    【讨论】:

      猜你喜欢
      • 2018-03-10
      • 2014-04-05
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 2013-09-19
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多