目前正在处理一个项目并已完成。在当地工作正常。但是当上传到服务器时。它不应该工作。 CSS和JS以及图像没有链接。我检查了项目文件夹中的所有.htaccess文件,看起来很好。这些是.htaccess文件中的代码
在root
中<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
在应用
中<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
webroot中的
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
自上传到服务器后,这些文件仍然相同。我还经历了一些文章和问题,以确保我没有弄乱.htaccess文件。然后我发现了这个问题。
在本地,当我试图在本地打开/localhost/project/app/Controller/UsersController.php时,它返回错误,因为它应该是
但是当我在服务器上尝试相同的时候 实际上似乎访问了该页面。由于它的控制器没有找到输出,但我可以确定直接访问控制器。我无法弄清楚正在经历什么样的问题。对此我很陌生。任何帮助将不胜感激。
答案 0 :(得分:0)
Cake在tmp文件夹下创建tmp文件。您必须向此文件夹授予读/写权限。在您的代码生效后,请对您的tmp文件夹授予777权限,并尝试删除子文件夹下的所有这些文件。它可能会工作,请分享您的结果。你会在app文件夹下找到tmp文件夹。
答案 1 :(得分:0)
您的问题出现在in root
.htaccess中,应该是这样的:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ projectfolder/app/webroot/ [L]
RewriteRule (.*) projectfolder/app/webroot/$1 [L]
</IfModule>
答案 2 :(得分:0)
该项目现在可以使用(必须联系支持以启用mod_rewrite)。我启用了
Configure::write('App.baseUrl', env('SCRIPT_NAME'));
在config / core.php中的问题是没有在服务器中启用mod_rewrite。因此,在核心中启用它可以支持项目在没有mod重写的情况下工作。
谢谢 http://wwdj.wijndaele.com/getting-started-with-cakephp-without-mod_rewrite/
答案 3 :(得分:0)
我有同样的问题,它在localhost上工作但在服务器上没有,它抛出404错误。 这是因为我已将我的网站上传到服务器根目录的子目录中。我做了很多事情让它工作但是因为我在根文件夹中使用htaccess我在根级别找不到解决方案。
最后我找到了一个解决方案,编辑了现有的cakephp根文件夹的htaccess,并在RewriteEngine之后添加了“RewriteBase”。
完整代码:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /name_of_the_subFolder
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
如果我的项目出现在'xyz.com/one/two/cake/'中,那么RewriteBase就是Rewritebase /one/two/cake/
。
它对我有用。