默认路由(控制器/动作)和 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的主要内容,如果未能解决你的问题,请参考以下文章

7--Rails路由

Django 第二篇

mvc——URL路由_1_定义路由(映射url到动作方法)

属性路由默认网址

带有参数的 symfony 路由上的 css/js 路径错误

中间件中的路由控制器和动作