CakePHP不会输出正确的CSS路径

时间:2011-05-24 13:46:16

标签: php css cakephp cakephp-1.3

刚开始在CakePHP中开发,安装并配置它。但是,应用程序不会输出样式表的正确路径。

查看页面源时,样式表的路径为:

/rm-lab/css/cake.generic.css

这会导致404错误页面。

如果我尝试通过此路径访问样式表,则会加载样式表;

/rm-lab/app/css/cake.generic.css

感谢帮助。

更新 尝试了很多解决方案之后,我只是在另一个子文件夹中重新安装了cakePHP,这样可以很好地加载CSS。我认为这与.htaccess文件有关。

6 个答案:

答案 0 :(得分:2)

您的蛋糕应用程序似乎位于子文件夹中。您应该在app / webroot

中的.htaccess文件中设置重写基数

在app / webroot / .htaccess中,添加以下行:

RewriteBase /rm-lab

您的.htaccess文件现在应该如此显示:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /rm-lab
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

答案 1 :(得分:0)

您使用的是主题吗?如果是这样,您可能需要切换路径。看到这里(向下滚动一下):

http://book.cakephp.org/view/1093/Themes

答案 2 :(得分:0)

在我的脑海中,这似乎是一个Apache级别的问题。您在Apache中的DocumentRoot是否设置为/ app目录?这肯定会有所帮助。一般来说,我认为你应该用Cake检查Apache的东西(看看应用程序中的.htaccess文件)。为了查明问题,我将CakePHP配置为而不是在core.php中使用mod_rewrite。

答案 3 :(得分:0)

尝试在名为“test_rewrite.php”的public_html文件夹中创建一个新脚本 访问该文件以确保在您的共享主机帐户上启用了mod_rewrite。如果未加载,您可能需要联系您的托管服务提供商以启用它。

<?php
if (in_array("mod_rewrite", apache_get_modules())) {
    echo "mod_rewrite loaded";
} else {
    echo "mod_rewrite not loaded";
}
?>

答案 4 :(得分:0)

我认为你试图让HtmlHelper::css方法做一些它不应该做的事情。根据文件:

  

(需要混合 $ path ) - CSS的名称   样式表或包含的数组   CSS样式表的名称。如果$ path是   前缀为'/',路径为   相对于你的webroot   应用即可。否则,路径会   通常,相对于您的CSS路径   根目录/ CSS

cake.generic.css文件确实应该使用您在视图中使用的app/webroot/css代码放在$this->Html->css('cake.generic')文件夹中。

以下是API文档的链接:HtmlHelper Class documentation

答案 5 :(得分:0)

确保您的apache DocumentRoot设置为/ path / to / your / site / in / a / subdir / webroot

webroot部分很关键 - 它可以防止webroot外部的文件被访问,webroot文件夹中的htaccess会跳过加载webroot(img,css等)中实际文件的dispatch index.php文件

如果您正确设置了DocumentRoot路径,并且如上所述,.htaccess文件中包含从站点文件夹的根目录到蛋糕安装的子文件夹,则路径问题应该自行解决。

您可能想让我们知道服务器上的蛋糕安装的绝对路径,并向我们展示带有DocumentRoot详细信息的VirtualHost块。