【问题标题】:cakephp inside a subdirectorycakephp 在子目录中
【发布时间】:2011-02-09 02:27:30
【问题描述】:

我对 cakephp 有疑问,我找不到让 cakephp 在子目录中工作的方法。我有一个位于www.example.com 的网页,我想在www.example.com/cake 上拥有 cakephp 应用程序。 www.example.com 是虚拟主机,cake 是存储所有蛋糕文件和目录的子目录。 问题是当我去www.example.com/cake 它请求一个CakeController 并且没有加载样式表。 当我转到 www.example.com/cake/users/register (= UsersController::register() ) 时,它会显示正确的网站,但又没有 CSS。

所以我需要两件事...让www.example.com/cake 显示主页并加载样式表。

你不知道如何实现吗?

提前致谢

【问题讨论】:

    标签: php cakephp cakephp-1.3 subdirectory


    【解决方案1】:

    您是否阅读了书中的this page 并在/app/webroot/index.php 中进行了适当的更改?

    编辑:

    问题是当我去 www.example.com/cake 它要求一个 CakeController 并且没有样式表 已加载。

    这似乎表明您的站点根目录(www、htdocs、public_html 或其他)中的 .htaccess 错误,因为它正在尝试将请求处理到 CakePHP 结构中。

    它应该看起来像这样

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

    您为什么不让自己的生活变得轻松,将 CakePHP 放在根目录中,并将位于 www.example.com 的页面移动到 app/webroot 中。这样它就会完全按照你的意愿行事,即:

    www.example.com/staticPage.html - 显示静态页面。

    www.example.com/users - 显示用户索引

    webroot 中的文件与站点根目录中的文件完全相同。想想 css 和 javascript 文件。

    【讨论】:

    • 没有必要进行更改,因为路径指向正确的目录
    【解决方案2】:

    很可能您的主机帐户没有在 Apache 中启用 mod_rewrite。请与您的主人确认。另一个可能的问题描述如下:

    您是否更改了 webroot/index.php 中的路径?

    您需要根据您的托管服务提供商目录路径调整该文件中的路径以指向 Cake 核心文件文件夹。

    例如,

    if (!defined('CAKE_CORE_INCLUDE_PATH')) { 
        define('CAKE_CORE_INCLUDE_PATH', 'home' . DS .'w3dev' . DS . 'public_html' . DS . 'clients' . DS . 'folderName' . DS . 'remote' . DS . 'v1.1' . DS .  'cake'); 
    }
    

    if (!defined('APP_DIR')) {
        define('APP_DIR', basename(dirname(dirname(__FILE__))). DS . 'v1.1' . DS . 'app'); 
    }
    

    以上所有内容都取决于您的托管服务器帐户上的目录。作为您的根路径数据的主机,因此您可以相应地指向它。

    【讨论】:

    • 好吧,我的 CAKE_CORE_INCLUDE_PATH/var/www/example/cake 没关系,APP_DIRapp 我猜这也很好,ROOT 是相同的 asi 核心引入路径:/var/www/example/cake
    • 我不明白这个 - 在顶部你说你在蛋糕下有蛋糕应用程序。在这里,您似乎在暗示蛋糕应用程序在示例中。
    • Leo、cake 和 app 在同一个目录中(不是彼此的子目录)。我的例子可能很差,但这只是为了提供一些指导:)
    • 目录结构如下:/var/www/example/cake/app/var/www/example/cake/cake ... 可能把整个东西放到cake 目录是不吉利的,但是从现在开始,你应该明白我是什么了努力实现
    • 所以你的 CAKE_CORE_INCLUDE_PATH 应该是:/var/www/example/cake/ 而你的 APP_DIR 应该是:cake/app,但是你需要使用我在 . DS 。分隔符等
    【解决方案3】:

    我不熟悉 Cake,但几乎可以肯定它是某种路径问题。验证样式表的路径是否准确。

    我知道有些框架会使用返回配置值的 base_url() 函数(或类似名称),您应该检查您的配置以确保正确设置了基本 URL。

    【讨论】:

      猜你喜欢
      • 2016-09-01
      • 2011-05-15
      • 1970-01-01
      • 2014-06-02
      • 2012-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      相关资源
      最近更新 更多