CakePHP不';t输出到CSS的正确路径

CakePHP不';t输出到CSS的正确路径,php,css,cakephp,cakephp-1.3,Php,Css,Cakephp,Cakephp 1.3,刚开始用CakePHP开发,安装并配置了它。但是,应用程序没有向样式表输出正确的路径 查看页面源时,样式表的路径为: /rm-lab/css/cake.generic.css 这将导致404错误页面 如果我试图通过此路径访问样式表,则会加载样式表 /rm-lab/app/css/cake.generic.css 谢谢你的帮助 更新: 在尝试了许多解决方案之后,我在另一个子文件夹中重新安装了cakePHP,这将很好地加载CSS。我认为这与.htaccess文件有关。您使用的是主题吗?如果是这样

刚开始用CakePHP开发,安装并配置了它。但是,应用程序没有向样式表输出正确的路径

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

/rm-lab/css/cake.generic.css
这将导致404错误页面

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

/rm-lab/app/css/cake.generic.css
谢谢你的帮助

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

您使用的是主题吗?如果是这样,您可能需要切换路径。请参见此处(向下滚动一点):


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

您的cake应用程序似乎位于子文件夹中。您应该在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>

重新启动发动机
后勤基地/资源管理实验室
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$index.php?url=$1[QSA,L]

尝试在公共html文件夹中创建一个名为“test\u rewrite.php”的新脚本 访问该文件以确保已在共享主机帐户上启用mod_rewrite。如果未加载,您可能希望与主机提供商联系以启用它

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

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

(混合$path必需)--CSS的名称 样式表或包含 CSS样式表的名称。如果$path是 前缀为“/”的路径将为 相对于您的 应用程序。否则,路径将被删除 通常是相对于CSS路径 webroot/css

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


这里有一个指向API文档的链接:

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

webroot部分非常重要-它防止访问webroot外部的文件,webroot文件夹中的htaccess跳过加载webroot内部实际文件的dispatch index.php文件(img、css等)

如果DocumentRoot路径设置正确,并且从站点文件夹根目录到cake安装的子文件夹包含在.htaccess文件中(如上所述),那么路径问题应该会自行修复


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

也许我错了(从未使用过任何php框架)但是试试../rm lab/css/cake.generic。css@ElaineMarley感谢您的帮助,但我正在使用Cake中的Html帮助程序将链接输出到CSS<代码>echo$this->Html->css('cake.generic')不使用主题,只需将default.ctp复制到/public_html/rm lab/app/views/layouts/yes子文件夹中即可。我将该行添加到app/webroot/中的.htaccess文件中,但它仍然没有输出到css的正确路径。他的DocumentRoot永远不应该是“app”或任何其他包含“app”文件的文件夹。我认为情况并非如此。你认为这是什么意思?我还注意到,您在原始问题中提出的文件夹结构不正确。您有
/rm lab/css/cake.generic.css
?CakePHP安装的默认文件夹结构与此不同。这可能是您的问题的一部分吗?我试图让Html::css方法输出样式表的路径,这不是该方法的目的吗?我不想用这个方法做任何其他事情。我的问题是
/rm lab/css/cake.generic.css
是查看网页源代码时显示的路径,即这不是我自己指定的路径。希望这是有意义的。