2016-07-05 54 views
1

我在加载我的网址以a /结尾的那一刻加载css和图像时遇到了问题。我工作过我的本地和网址的形式改写:由于url重写导致CSS,图像和JS未加载

localhost/mysite/public/user/testuser/books/1234 

与请求加载testuser的用户个人页面,更改页面国家把重点放在一本书id为1234

一切工作正常localhost/mysite /公共/用户,但现在我介绍一个/或/ testuser的URL在CSS,JS和图像中断。我确实有地址重写,并阅读了一些说明.htaccess重写问题的帖子。这里是我的网站的结构:例如::../public/css/styles.css

mysite/ 
    app/ 
     controllers/ 
     models/ 
     etc... 
    public/ 
     css/ 
      styles.css 
     images/ 
      profilepic.png 
     js/ 
    index.php 

的所有图片,JS和CSS是通过相对路径引用。

的.htaccess的内容是:

Options -MultiViews 
RewriteEngine On 

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

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

我读了解决方案,包括所有的路径更改为绝对或改变他们/css/styles.css例如混合。当然绝对是可行的,但当我将网站移动到其实际的域名时,这是没有意义的,我需要更改每个实例。

还有有关排除CSS,JPEG等笔记...从重写文件中使用:

RewriteCond %{REQUEST_URI} !^.*\.(css|jpe?g|gif|png|js|ico)$ [NC] 

不幸的是这些选项都无法工作,我不知道还有什么地方我要看看。有任何想法吗?

+0

[Seo Friendly Url css img js not working](http://stackoverflow.com/questions/31241701/seo-friendly-url-css-img-js-not-working) – starkeen

+0

答案是否有效为你还是什么? –

+0

是的,谢谢。那就是诀窍。我从来没有遇到过的实际实施。这让我想知道一些较大的网站正在做什么来解决这个问题,它有类似的URL重写。 – Runicode

回答

1

如果你不想改变每一个实例,当你移动你的网站,只是更新HTML页面标题的<head>部分,并添加这个

<base href="http://www.example.com/" /> 

<base href="/" /> 

这将照顾这个问题,你不必将所有实例更新到绝对路径。