我遇到了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
显示主页并加载样式表。
你不知道如何实现这个目标吗?
提前致谢
答案 0 :(得分:3)
您的mod_rewrite很可能未在您的托管帐户中启用Apache。请咨询您的主人。下面描述的另一个可能的问题是:
您是否更改了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');
}
以上所有内容都取决于托管服务器帐户上的目录。作为根路径数据的主机,您可以相应地指出它。
答案 1 :(得分:3)
您是否在书中阅读了this page并在/app/webroot/index.php
进行了相应的更改?
修改强>
问题在于我去的时候 www.example.com/cake要求a CakeController并没有样式表 加载。
这似乎表明您在网站的根目录(www,htdocs,public_html或其他)中有错误的.htaccess,因为它正在尝试将请求处理到CakePHP结构中。
它应该不看起来像这样
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
为什么不让自己轻松生活,将CakePHP放在root中,并将位于www.example.com
的页面移动到app / webroot中。这样它就会按照你想要的那样行事,即:
www.example.com/staticPage.html
- 显示静态页面。
www.example.com/users
- 显示用户索引
webroot中的文件就像它们位于站点的根目录中一样。想想css和javascript文件。
答案 2 :(得分:0)
我不熟悉Cake,但它几乎肯定是某种路径问题。验证样式表的路径是否准确。
我知道有些框架将使用返回配置值的base_url()函数(或类似命名的东西),您应该检查您的配置以确保正确设置基本URL。