2011-11-21 27 views
11

我试图使用模式重写来使用户友好的URL。 我的问题是,在给我的URL给'name'等类别之后,当我使用新的URL调用页面时,它无法加载CSS文件或图像。URL重写后丢失CSS文件和图像

我有这样一个链接:

本地主机/ mywebsite /项目ID = 22

新的链接是一样的东西

本地主机/ mywebsite /项目/ 22/myproject.project

htaccess代码:

RewriteRule ^project/([0-9]*)/.*\.project$ /project.php?project=$1 [L] 

(它可能不是100%正确的,但我没有访问我的代码,现在,所以我只是写了这个,它工作正常的原始源)

我的根目录为localhost/mywebsite/

和我的CSS文件中的CSS/style.css中

本地主机/ mywebsite/CSS/style.css中

我的htaccess

本地主机/ mywebsite /的.htaccess

和我project.php文件是

本地主机/ mywebsite/project.php

所以在项目页面中,我可以使用相对路径访问CSS文件,

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

但是当我使用重写的URL页面时找不到CSS文件。

我不能使用域名的绝对路径,因为我还没有域名!它可以是任何东西。

一个方法是使用相对路径来域对类似的问题的建议 本地主机/ mywebsite/project.php ,当我localy运行我的脚本我的根目录 本地主机 所以CSS链接应该像

HREF = “mywebsite/CSS/style.css的”

但是当我去住,我应该改变所有链接到大概就像

href =“/ css/style。CSS”

这似乎是很多工作

回答

26

对于本地版本添加

<base href="//localhost/mywebsite" /> 

到头部

,并为您的生活版本中,它在http://www.w3.org/TR/html4/struct/links.html#h-12.4

+0

是的,但也有图像,我不能改变每个图像的域名后上线 – max

+0

@最大,'基地'标签与图像一起工作..例如http://jsfiddle.net/gaby/JE656/ –

+0

对我来说,像魅力一样工作! :) – jackkorbin

1

插入的图像与其他的CSS HREF链接相同的相对路径相同的文件,在浏览器中加载页面,在互联网右键单击图像资源管理器,单击属性,你应该看到的相对路径实际指向。

+0

这是找出你在:) – Mattis

+0

显然我应该包括mywebsite对他的Cuz本地主机认为是我的根和/ mywebsite /文件夹链接的好办法是另一个目录,以便它应该包含在链接中。我不能改变所有的链接,当我去生活! – max

+0

你不能改变所有可理解的麻烦的链接,所以保持所有路径相对,但调整每个路径与正确的相对位置。注意:我并不是指使用绝对路径,我的意思是检查绝对路径并调整相对路径,直到您找到正确的路径。你可以使用../上去一个文件夹。 – Ozzy

2

改变

<base href="//your.domain.here" /> 

引用您必须定义基本路径或connection.php服务器收看路径,每当ü希望这条道路,使那全球。那么该变量将被调用,并且CSS或图像将采用整个路径。

例如 $ SVP = “http://www.example.com/”

全球高级副总裁$; echo $ SVP;

所以