默认路由(控制器/动作)和 css/js 的链接不起作用 cakephp
Posted
技术标签:
【中文标题】默认路由(控制器/动作)和 css/js 的链接不起作用 cakephp【英文标题】:Default route (controller/action) and links of css/js doesn't work cakephp 【发布时间】:2014-07-02 14:37:35 【问题描述】:在将 cake 2.5.2(在 Linux 上)解压缩到目录 /var/www/html/teste
后,当访问 url http://localhost/teste
时,它会正确加载控制器 pages
和操作 display
的内容,如来自 routes.php
:
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
但是当试图通过url直接访问控制器时:
http://localhost/teste/pages/display
我有返回404 Page not found.
否则,不会加载文件css/js/img
webroot 文件夹(不包含在生成的 url 中)。
生成的网址返回文件未找到:
http://localhost/teste/css/cake.generic.css
正确访问文件的网址:
http://localhost/teste/app/webroot/css/cake.generic.css
我对文件 css/js/img 的解决方案如下,我更改了调用文件的形式。
使用的标准格式:
echo $this->Html->css('cake.generic');
新形式:
echo $this->Html->css('/app/webroot/css/cake.generic.css');
简而言之,我认为错误实际上可能出在 apache 之类的地方,但不知道我该如何验证那部分。
我对 css / js / img 的解决方案是否正确?因为我认为这是我正确下载蛋糕版本的示例。
如果他们需要更多信息,请告诉我,谢谢。
【问题讨论】:
您是否启用了mod_rewrite
?
【参考方案1】:
这是禁用 mod_rewrite 的环境的症状。
如果您使用 Ubuntu,只需输入:
sudo a2enmod rewrite
在您的 /etc/apache2/apache2.conf 中找到与此类似的块:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
然后换行
AllowOverride None
有
AllowOverride All
最后,重启你的 apache:
sudo service apache2 restart
【讨论】:
以上是关于默认路由(控制器/动作)和 css/js 的链接不起作用 cakephp的主要内容,如果未能解决你的问题,请参考以下文章