在生产中找不到symfony 2路线

时间:2012-02-24 07:55:13

标签: routing symfony

我有以下路由:/,/ login,/ register等在开发环境中正常工作。

首先,当我尝试通过app.php而不是app_dev.php访问我的网站时出现404错误

然后我跟着this advice并清理了我的缓存。

但现在我得到一个空白屏幕,试图访问任何注册路线,如app.php /或app.php / login。

我在prod.log中找到了这条消息:

[2012-02-24 11:27:05] request.ERROR: Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /login" (uncaught exception) at /home/renat/www/ptracker/app/cache/prod/classes.php line 4564 [] []

这是我的routing.yml:

PtrackerTasksBundle:
resource: "@PtrackerTasksBundle/Resources/config/routing.yml"
prefix:   /

PtrackerAuthBundle:
resource: "@PtrackerAuthBundle/Resources/config/routing.yml"
prefix:   /

AuthBundle中的routing.yml:

homepage:
pattern:  /
defaults: { _controller: PtrackerAuthBundle:Default:index }

register:
pattern:  /register
defaults: { _controller: PtrackerAuthBundle:Default:register }

login:
pattern:  /login
defaults: { _controller: PtrackerAuthBundle:Default:login }

activate:
pattern:  /activate/{username}/{salt}
defaults: { _controller: PtrackerAuthBundle:Default:activate }

login_check:
pattern:  /login_check
TasksBundle中的

routing.yml:

tasks:
pattern:  /tasks
defaults: { _controller: PtrackerTasksBundle:Default:index }

tasks_add:
pattern:  /tasks/add
defaults: { _controller: PtrackerTasksBundle:Default:add }  

tasks_view:
pattern:  /tasks/view/{id}
defaults: { _controller: PtrackerTasksBundle:Default:view, id : null }  

tasks_change_responsible:
pattern:  /tasks/change_responsible/{id}/{responsible}
defaults: { _controller: PtrackerTasksBundle:Default:change_responsible, _format: json }  

tasks_change_status:
pattern:  /tasks/change_status/{id}/{status}
defaults: { _controller: PtrackerTasksBundle:Default:change_status, _format: json }    

tasks_edit:
pattern:  /tasks/edit/{id}
defaults: { _controller: PtrackerTasksBundle:Default:edit } 

我错过了什么或我做错了什么?

3 个答案:

答案 0 :(得分:12)

首先,在路由器的控制台列表中查看(命令router:debug)。 如果你找到了你的路由器,那么在我的情况下清除缓存的一些麻烦我手动删除文件夹app/cache并且它可以工作。

要设置没有缓存的PROD环境,请在文件app.php中更改为

$kernel = new AppKernel('prod', true);

答案 1 :(得分:9)

尝试清除prod环境中的缓存。

php app/console cache:clear --env=prod --no-debug

答案 2 :(得分:0)

app/console cache:clear

or

active mod_rewrite in

activate the directory:  nano /etc/apache2/apache2.conf

AllowOverride None
<Directory "/var/www/html">
    AllowOverride None
</Directory>
for
<Directory "/var/www/html">
    AllowOverride All
</Directory>

http://www.dev-metal.com/enable-mod_rewrite-ubuntu-14-04-lts/