2012-02-24 79 views
6

我有類似路徑:/,/登錄,/註冊等,在開發環境中工作正常。symfony 2路線沒有在生產中找到

在第一次嘗試時通過app.php訪問我的網站,而不是app_dev.php

然後我也跟着this advice盪滌我的緩存我得到404錯誤。

但是,現在我得到一個空白屏幕試圖訪問任何註冊的路線,如app.php /或app.php /登錄。

我發現這個消息在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: /

的routing.yml在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在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 } 

我錯過了什麼或者我做錯了什麼?

+1

什麼'PHP應用程序/控制檯路由器:調試-e = prod'輸出? – meze 2012-02-24 08:04:20

+0

[RuntimeException] 無法寫入緩存目錄(/ home/renat/www/ptracker/app/cache/prod) 現在可以使用777權限:) – mennanov 2012-02-24 08:17:56

回答

10

首先,檢查路線控制檯列表(命令router:debug)。 如果你發現你的路由器,然後在我的情況下清除緩存一些麻煩,我手動刪除文件夾app/cache,它的工作原理。

有關PROD環境設置PROD環境,而高速緩存,文件app.php變化

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

問題在於不正確的文件夾權限。當我將它設置爲777時,它工作正常 – mennanov 2012-07-04 12:58:56

+0

第二個參數用於啓用調試,在這種情況下用於產品環境。 [如何啓用調試和禁用緩存](http://symfony.com/doc/current/cookbook/debugging.html) – 2014-01-30 19:22:08

7

嘗試清除緩存。

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/