我刚刚在我的服务器上配置了cakePHP 2.0,但是默认页面没有应用布局和css。它还会显示以下错误。
您的服务器上未正确配置URL重写。 1)帮我配置它2)我不/不能使用URL重写
我已经发现no-layout / css问题可能与URL重写错误有关,所以我按照this Cookbook page中描述的步骤进行了操作,但它没有任何效果。 URL重写错误仍然可见,默认页面仍然缺少其布局和CSS样式。
一些信息
[error] [client 212.***.***.***] File does not exist: /var/www/html/admin/css, referer: http://***.nl/admin/
[error] [client 212.***.***.***] File does not exist: /var/www/html/admin/img, referer: http://***.nl/admin/
[error] [client 212.***.***.***] File does not exist: /var/www/html/admin/favicon.ico
/admin/app/webroot/.htaccess
的内容<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /admin/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
/admin/app/.htaccess
的内容<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /admin/
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
答案 0 :(得分:2)
我最初发布此评论作为评论,但由于这似乎与OP有关,我将把它作为正式答案。样式表链接给出了404错误。
没有布局,你的意思是没有HTML? cake.generic.css文件是否正确加载?如果模块已正确加载,则mod_rewrite消息的div将被默认CSS隐藏,但如果未包含CSS,则无论如何都可能会看到它。
我在1.3安装上遇到过这个问题,所以我不确定它是否适用于2.0。
至于404错误,这可能是一个多余的问题:但是,webroot
目录中的favicon.ico和cake.generic.css
中的/webroot/css/
是否真的存在?
此外,您是在子目录中运行应用程序,还是在Web服务器的HTTP根目录中的app
目录?
如果您正在子目录中运行该应用程序,您可能希望更改.htaccess
目录(或其所谓的任何目录)的app
中的RewriteBase,其中模型,控制器等是存储和webroot
目录。
/app
目录的.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /YOUR_APP_DIR/
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
/app/webroot
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /YOUR_APP_DIR/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
将YOUR_APP_DIR更改为您网络服务器上的相关路径。 Here's more在Cake的特定安装上,它可能适用于您的设置。
修改强>
.htaccess看起来不正确。我认为它应该是:/admin/app/
在两个文件中。
如果这不起作用,您可以调查default.ctp
中调用CSS的方式。在default.ctp
中对CSS的调用格式如下:
<?php echo $this->Html->css(array("/css/cake.generic"), "stylesheet", array("media"=>"screen")); ?>
您还可以通过在default.ctp
中放置具有该名称的文件来覆盖库存/View/Layouts
,可以找到Cookbook示例here。完成后,您可以尝试使用css文件的完整路径,看看服务器是否正确地提供了它。