主题资产在CakePHP 2.2.4中不起作用

bow*_*rae 8 themes assets cakephp cakephp-2.2

我已经看到很多关于链接到CakePHP中的主题资产的问题,但没有一个问题解决了我的问题,最近的帖子也是在2012年,所以我想我会把我的问题浮出水面.

我在CakePHP 2.2.4应用程序中实现了主题.我的主题名为"默认"(之前称为"默认",直到1分钟前)位于app/View/Themed/default(之前主题名称也有相应的大写字母D作为文件夹名称).

我的css文件位于app/View/Themed/default/webroot/css/style.cssapp/View/Themed/default/Layouts/default.ctp用以下代码调用的位置

Default.ctp布局

echo $this->Html->css('style');
Run Code Online (Sandbox Code Playgroud)

(我已尝试将大写W用于webroot"以防万一",但毫无意外的是没有用)

我在AppController中包含了这个链接,以确定我正在使用的主题.所有视图文件都指向正确的主题,但现在的问题是样式表(我还没有弄乱其他资产,如js或图像文件).

AppController的

class AppController extends Controller {

    public $theme = 'default'; // previously 'Default'
    // also, have used both 'public $theme' and 'var $theme', no difference
Run Code Online (Sandbox Code Playgroud)

我已经阅读了以下问题,但没有一个"解决方案"有效.大多数解决方案是检查拼写/大写,检查文件夹的权限,检查我的.htaccess文件等.仍然没有.还有新想法?

的.htaccess

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

主题webroot和css文件夹的文件夹权限是755.

这是我用过的一些资源,没有运气.

http://book.cakephp.org/2.0/en/views/themes.html

CakePHP主题资源返回错误

无法在cakephp的Themes webroot文件夹中获取css和图像文件

https://groups.google.com/forum/#!topic/cake-php/xaRAugMoNSc

CakePHP 2.x主题不起作用

https://groups.google.com/forum/#!topic/cake-php/siYVWchUb1g

更新:使用$this->Html->image('image.jpg')正确显示位于的定义图像View/Themed/Default/webroot/img/image.jpg.但是,使用$this->Html->css('style')try来app/webroot/css/style.css从而不是从中拉出样式表app/View/Themed/Default/webroot/css/style.css.我还必须将我的主题的主题名称和文件夹名称更改为"默认",并使用大写的D以使图像正确链接.样式表仍然无法正确链接.如果我在浏览器中直接导航到我的主题样式表,则会出现一个空白页面.如果我导航到我的主题文件夹中不存在的样式表,那么我会收到正确的错误消息.但是,查看我的主题样式表(确实存在的样式表)的来源会显示一个空白页面.

bow*_*rae 1

好吧,也许这很明显......但我的样式表使用我在自定义助手中创建的函数。当样式表位于 中时app/webroot/css,没有问题,但是当样式表位于 中时,app/View/Themed/Default/webroot/css它无法正确显示,因此 Cake 链接到应该位于 中的不存在的样式表app/webroot/css。我已从主题样式表中删除了助手,现在一切正常。

我还将主题名称从“默认”恢复为“默认”,以便图像能够正确显示$this->Html->image(可能还有样式表和 JS 文件),即使视图文件已正确链接(无论大小写如何)。