2012-02-24 15 views
6

Tengo rutas como: /,/login,/register, etc. que funcionan bien en el entorno de desarrollo.Symfony 2 rutas no encontradas en la producción

Al principio i ha obtenido un error 404 cuando se trate de acceder a mi sitio a través de app.php en lugar de app_dev.php

Luego he seguido this advice y limpiado mi caché.

Pero ahora estoy obteniendo una pantalla en blanco tratando de acceder a cualquiera de las rutas registradas como app.php/o app.php/login.

me encontré con este mensaje en 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 [] [] 

Aquí es mi routing.yml:

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

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

routing.yml en AuthBundle:

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 

routing.yml en TasksBundle:

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 } 

¿Qué extrañé o qué estoy haciendo mal?

+1

¿Qué 'php app/consola del router: debug = -e prod' de salida? – meze

+0

[RuntimeException] No se puede escribir en el directorio de caché (/ home/renat/www/ptracker/app/cache/prod) Ahora funciona con 777 derechos :) – mennanov

Respuesta

10

Primero, repase en la lista de rutas de la consola (comando router:debug). Si encontraste tus enrutadores, entonces algunos problemas con borrar el caché en mi caso, borré la carpeta app/cache manualmente y funciona.

Para ajustar entorno de producción sin caché, en el archivo app.php cambio de caché de compensación

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

El problema estaba en los derechos de la carpeta incorrecta. Cuando lo configuré en 777 funcionó bien – mennanov

+0

el segundo parámetro es para habilitar la depuración, en este caso para el entorno de producción. [Cómo habilitar la depuración y desactivar el almacenamiento en caché] (http://symfony.com/doc/current/cookbook/debugging.html) –

7

prueba la entorno prod.

php app/console cache:clear --env=prod --no-debug 
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/