CakePHP主题?

Mer*_*kos 0 cakephp cakephp-2.0

我尝试基于主题创建CakePHP应用程序.我使用的是最新版本的CakePHP 2.0.0

我的应用程序包含该文件

/app/Controller/AppController.php

class AppController extends Controller
{
    public $helpers = array('Html', 'Session', 'Form');

    public function beforeFilter()
    {
        $this->setupTheme();
    }

    private function setupTheme()
    {
        $this->viewClass = 'Theme';
        $this->theme = 'Mars';
        $this->layout = 'admin';
    }
}
Run Code Online (Sandbox Code Playgroud)

/app/Controller/LanguagesController.php

class LanguagesController extends AppController
{
    public $name = "Languages";

    public function index()
    {}
}
Run Code Online (Sandbox Code Playgroud)

/app/View/Themed/Mars/Languages/index.php

// Currently Empty
Run Code Online (Sandbox Code Playgroud)

/app/View/Themed/Mars/Layouts/admin.ctp

<?php echo $this->Html->docType('xhtml-strict'); ?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <?php echo $this->Html->charset(); ?>
    <meta name="author" content="Nikos Merianos" />

<title><?php echo $title_for_layout; ?></title>

    <?php
        echo $this->Html->meta('icon');
        echo $this->Html->css('amdin.css');
?>
</head>

<body>
    <?php 
        echo $this->Session->flash(); 
        echo $content_for_layout;
        echo $this->element('sql_dump');
        echo $scripts_for_layout;
    ?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

/app/View/Themed/Mars/webroot/css/admin.css

body
{
    background: #FA0;
}
Run Code Online (Sandbox Code Playgroud)

我现在的问题

为什么代码进入第11行Layout文件夹下的admin.ctp(echo $ this-> Html-> css('amdin.css');)会返回以下结果:

<link rel="stylesheet" type="text/css" href="/mars/css/amdin.css" />
Run Code Online (Sandbox Code Playgroud)

问题是链接是incorect.未加载CSS文件,因为该路径中不存在该文件.有什么好主意吗?

Far*_*ray 5

检查你的拼写......

/ app/View/Themed/Mars/webroot/css/a dm in.css

<link rel="stylesheet" type="text/css" href="/mars/css/amdin.css" />
Run Code Online (Sandbox Code Playgroud)

当您包含CSS文件时,"admin"中的字母会被转置...