【问题标题】:Missing CSS and images after URL rewriteURL 重写后缺少 CSS 和图像
【发布时间】:2014-06-20 02:29:23
【问题描述】:

在 Stackoverflow 上有很多关于此的信息,但似乎对我没有任何帮助!我已经在 .htaccess 文件中重写了一些 URL,它正在工作,但后来我发现 CSS 和图像丢失了。而且我阅读并阅读了有关如何将路径从相对更改为绝对的信息,但我不支持这有帮助,或者我这样做的方式错误!?

.htaccess 文件:

RewriteRule ^bilder-byggnader-kopenhamn$ /?p=byggnader [L]
RewriteRule ^bilder$ /?p=byggnader [L]
RewriteRule ^byggnad/(.+)$ /?p=byggnad&id=$1 [L]

只有 .htaccess 文件中的第三行会导致此问题。第一行和第二行不影响 CSS 和图像。

我的 CSS 文件从一开始就是这样的styelsheet.css,因为它位于根目录中。然后我把它改成了http://127.0.0.1/stylesheet.css,但还是不行。我还没有对图像进行此操作,但我想我应该和http://127.0.0.1/images/image.jpg 一样。

【问题讨论】:

    标签: css .htaccess mod-rewrite


    【解决方案1】:

    您应该考虑添加:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    

    因此重写规则不适用于现有文件和目录(例如图像和样式表)

    【讨论】:

    • 因此,如果您删除第 3 行,您将在您的页面 css 和图像中正确看到,而当您添加时却没有?
    • 当我在我的网站中使用您的代码时,什么也没发生,我的所有图像和 CSS 都正确显示。您是否在导致问题的行之前添加了我在答案中发布的代码?如果它在这个地方没有帮助,不幸的是我不知道出了什么问题
    • 不,还是一样的问题! :(
    【解决方案2】:

    首先像这样修改你的规则:

    RewriteEngine On
    
    RewriteRule ^bilder-byggnader-kopenhamn$ /?p=byggnader [L,QSA]
    RewriteRule ^bilder$ /?p=byggnader [L,QSA]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^byggnad/(.+)$ /?p=byggnad&id=$1 [L,QSA]
    

    然后确保在您的 css、js、图像文件中使用绝对路径而不是相对路径。这意味着您必须确保这些文件的路径以 http:// 或斜杠 / 开头。

    【讨论】:

      猜你喜欢
      • 2012-01-03
      • 2020-05-17
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      相关资源
      最近更新 更多