我的php控制器不能包含css文件

时间:2012-04-03 13:23:50

标签: php .htaccess segments

以下问题让我发疯,也许我在想困难。

这就是我开发的一个小型MVC框架。 Atleast没有网址重写。

问题是,只要我使用url重写,模板中包含的css或图像就会被定向到错误的目录。

如果我输入例如:http://www.domain.com/home那么一切都很好,css文件从http://www.domain.com/css/目录加载。

但是当我输入:http://www.domain.com/home/时,css文件无法加载,因为它在http://www.domain.com/home/css/中查找css文件,这无疑是错误的目录。它似乎将home /作为一个目录来查找包含的文件。

如果我根本不使用任何网址重写,只需输入:http://www.domain.com/index.php?slugs=home/即可,根本没有任何问题。所以我不认为问题是由我的脚本引起的,这就是为什么我认为应该在.htaccess文件中查找问题。

这是我的htacces文件:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(index\.php|images|css|robots\.txt)
RewriteRule ^(.*)$ /astrostrategy/index.php?slugs=$1 [L] 

有没有办法,家/测试/其他(段)不被视为目录?

希望我的帖子有道理,我经常认为这很复杂:P

已经感谢任何帮助! :)

GR, Hermes的。

2 个答案:

答案 0 :(得分:2)

似乎你正在使用相对于css的当前目录路径。当您使用http://www.domain.com/home/浏览器时,homehttp://www.domain.com/home/css/作为目录,而css文件将位于<link rel="StyleSheet" type="text/css" href="css/style.main.css" /> 中。我的建议是相对于根路径使用。现在你正在使用类似的东西:

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

最好使用绝对路径或相对于根路径。

{{1}}

答案 1 :(得分:2)

如果死亡的答案不起作用,您可以随时将base tag设置为在相对路径中使用的网址