2013-05-02 76 views
3

的Rails 3.2.13为什么这些路线从耙路线丢失?

我基本上尝试使用该截屏跟随部署:http://railscasts.com/episodes/335-deploying-to-a-vps

我有在开发工作的应用程序,但是当推到生产与Capistrano的我的控制器的一个动作几乎所有结果在404页。

当我运行 '耙路线',我注意到这个控制器的动作从输出丢失:

   root  /        static_pages#home 
       users GET /users(.:format)    users#index 
        POST /users(.:format)    users#create 
      new_user GET /users/new(.:format)   users#new 
      edit_user GET /users/:id/edit(.:format)  users#edit 
       user GET /users/:id(.:format)   users#show 
        PUT /users/:id(.:format)   users#update 
        DELETE /users/:id(.:format)   users#destroy 
      sessions POST /sessions(.:format)    sessions#create 
     new_session GET /sessions/new(.:format)   sessions#new 
      session DELETE /sessions/:id(.:format)   sessions#destroy 
       tasks GET /tasks(.:format)    tasks#index 
        POST /tasks(.:format)    tasks#create 
      new_task GET /tasks/new(.:format)   tasks#new 
      edit_task GET /tasks/:id/edit(.:format)  tasks#edit 
       task GET /tasks/:id(.:format)   tasks#show 
        PUT /tasks/:id(.:format)   tasks#update 
        DELETE /tasks/:id(.:format)   tasks#destroy 
       signup  /signup(.:format)    users#new 
       signin  /signin(.:format)    sessions#new 
      signout DELETE /signout(.:format)    sessions#destroy 
    tasks_mjhartman  /tasks/mjhartman(.:format)  tasks#mjhartman 
    tasks_ejmcfadden  /tasks/ejmcfadden(.:format)  tasks#ejmcfadden 
     tasks_ctkahler  /tasks/ctkahler(.:format)  tasks#ctkahler 
      tasks_gafc  /tasks/gafc(.:format)   tasks#gafc 
      tasks_wci  /tasks/wci(.:format)   tasks#wci 
      tasks_fsc  /tasks/fsc(.:format)   tasks#fsc 
     tasks_wagco  /tasks/wagco(.:format)   tasks#wagco 
      tasks_it  /tasks/it(.:format)    tasks#it 
      tasks_atf  /tasks/atf(.:format)   tasks#atf 
      tasks_hr  /tasks/hr(.:format)    tasks#hr 
     tasks_legal  /tasks/legal(.:format)   tasks#legal 
    tasks_marketing  /tasks/marketing(.:format)  tasks#marketing 
    tasks_user_request  /tasks/user_request(.:format) tasks#user_request 
      tasks_jde  /tasks/jde(.:format)   tasks#jde 
tasks_communications  /tasks/communications(.:format) tasks#communications 
     tasks_hardware  /tasks/hardware(.:format)  tasks#hardware 
     tasks_software  /tasks/software(.:format)  tasks#software 
tasks_documentation  /tasks/documentation(.:format) tasks#documentation 
     tasks_security  /tasks/security(.:format)  tasks#security 
     tasks_billing  /tasks/billing(.:format)  tasks#billing 
     tasks_training  /tasks/training(.:format)  tasks#training 
    tasks_york_gafc  /tasks/york_gafc(.:format)  tasks#york_gafc 
     tasks_york_wci  /tasks/york_wci(.:format)  tasks#york_wci 
    tasks_berryville  /tasks/berryville(.:format)  tasks#berryville 
     tasks_route52  /tasks/route52(.:format)  tasks#route52 
    tasks_gafc_field  /tasks/gafc_field(.:format)  tasks#gafc_field 
    tasks_wci_field  /tasks/wci_field(.:format)  tasks#wci_field 

的routes.rb

Wagmantechnology::Application.routes.draw do 

    root :to => 'static_pages#home' 

    resources :users 
    resources :sessions, only: [:new, :create, :destroy] 
    resources :tasks 
    resources :assets 

    match '/signup', to: 'users#new' 
    match '/signin', to: 'sessions#new' 
    match '/signout', to: 'sessions#destroy', via: :delete 

    match 'tasks/mjhartman' => "tasks#mjhartman", :as => "tasks_mjhartman" 
    match 'tasks/ejmcfadden' => "tasks#ejmcfadden", :as => "tasks_ejmcfadden" 
    match 'tasks/ctkahler' => "tasks#ctkahler", :as => "tasks_ctkahler" 
    match 'tasks/gafc' => "tasks#gafc", :as => "tasks_gafc" 
    match 'tasks/wci' => "tasks#wci", :as => "tasks_wci" 
    match 'tasks/fsc' => "tasks#fsc", :as => "tasks_fsc" 
    match 'tasks/wagco' => "tasks#wagco", :as => "tasks_wagco" 
    match 'tasks/it' => "tasks#it", :as => "tasks_it" 
    match 'tasks/atf' => "tasks#atf", :as => "tasks_atf" 
    match 'tasks/hr' => "tasks#hr", :as => "tasks_hr" 
    match 'tasks/legal' => "tasks#legal", :as => "tasks_legal" 
    match 'tasks/marketing' => "tasks#marketing", :as => "tasks_marketing" 
    match 'tasks/user_request' => "tasks#user_request", :as => "tasks_user_request" 
    match 'tasks/jde' => "tasks#jde", :as => "tasks_jde" 
    match 'tasks/communications' => "tasks#communications", :as => "tasks_communications" 
    match 'tasks/hardware' => "tasks#hardware", :as => "tasks_hardware" 
    match 'tasks/software' => "tasks#software", :as => "tasks_software" 
    match 'tasks/documentation' => "tasks#documentation", :as => "tasks_documentation" 
    match 'tasks/security' => "tasks#security", :as => "tasks_security" 
    match 'tasks/billing' => "tasks#billing", :as => "tasks_billing" 
    match 'tasks/training' => "tasks#training", :as => "tasks_training" 
    match 'tasks/york_gafc' => "tasks#york_gafc", :as => "tasks_york_gafc" 
    match 'tasks/york_wci' => "tasks#york_wci", :as => "tasks_york_wci" 
    match 'tasks/berryville' => "tasks#berryville", :as => "tasks_berryville" 
    match 'tasks/route52' => "tasks#route52", :as => "tasks_route52" 
    match 'tasks/gafc_field' => "tasks#gafc_field", :as => "tasks_gafc_field" 
    match 'tasks/wci_field' => "tasks#wci_field", :as => "tasks_wci_field" 

    match 'assets/laptop' => "assets#laptop", :as => "assets_laptop" 
    match 'assets/desktop' => "assets#desktop", :as => "assets_desktop" 
    match 'assets/server' => "assets#server", :as => "assets_server" 
    match 'assets/network' => "assets#network", :as => "assets_network" 
    match 'assets/tablet' => "assets#tablet", :as => "assets_tablet" 
    match 'assets/cell' => "assets#cell", :as => "assets_cell" 
    match 'assets/data' => "assets#data", :as => "assets_data" 
    match 'assets/office' => "assets#office", :as => "assets_office" 
    match 'assets/printer' => "assets#printer", :as => "assets_printer" 
    match 'assets/gafc' => "assets#gafc", :as => "assets_gafc" 
    match 'assets/wci' => "assets#wci", :as => "assets_wci" 
    match 'assets/fsc' => "assets#fsc", :as => "assets_fsc" 
    match 'assets/wagco' => "assets#wagco", :as => "assets_wagco" 
    match 'assets/it' => "assets#it", :as => "assets_it" 
    match 'assets/atf' => "assets#atf", :as => "assets_atf" 
    match 'assets/hr' => "assets#hr", :as => "assets_hr" 
    match 'assets/legal' => "assets#legal", :as => "assets_legal" 
    match 'assets/marketing' => "assets#marketing", :as => "assets_marketing" 
    match 'assets/user_request' => "assets#user_request", :as => "assets_user_request" 
    match 'assets/jde' => "assets#jde", :as => "assets_jde" 
    match 'assets/communications' => "assets#communications", :as => "assets_communications" 
    match 'assets/hardware' => "assets#hardware", :as => "assets_hardware" 
    match 'assets/software' => "assets#software", :as => "assets_software" 
    match 'assets/documentation' => "assets#documentation", :as => "assets_documentation" 
    match 'assets/security' => "assets#security", :as => "assets_security" 
    match 'assets/billing' => "assets#billing", :as => "assets_billing" 
    match 'assets/training' => "assets#training", :as => "assets_training" 
    match 'assets/york_gafc' => "assets#york_gafc", :as => "assets_york_gafc" 
    match 'assets/york_wci' => "assets#york_wci", :as => "assets_york_wci" 
    match 'assets/berryville' => "assets#berryville", :as => "assets_berryville" 
    match 'assets/route52' => "assets#route52", :as => "assets_route52" 
    match 'assets/gafc_field' => "assets#gafc_field", :as => "assets_gafc_field" 
    match 'assets/wci_field' => "assets#wci_field", :as => "assets_wci_field" 
    match 'assets/inventory' => "assets#inventory", :as => "assets_inventory" 

end 

从 '耙路线' 的输出

您会看到没有列出任何资产路线。为什么?非常奇怪的是,指数行为/资产在生产中起作用,但没有别的。所有链接都在开发中。我在这里做错了什么?

回答

2

原因应该是与资产管道的名称冲突。

路由中的“资产”一词过于敏感,与Rails静态资产相同。您可以验证localhost:3000/assets/rails.png将在开发环境中工作,但不能生产。所有“资产”路线在生产模式下都已更改。

我的建议是将您的路由名称空间从“assets”重命名为其他名称。但是这可能涉及很多工作。我还不知道其他更简单的方法。

更新 感谢@ sevenseacat的评论。他指出,一个更简单的方法 - 改变资产路线

config.assets.prefix = "/some_other_path" 

参考:资产路径“> http://guides.rubyonrails.org/asset_pipeline.html#changing-the- 资产 -path

+0

或者,您可以更改Rails用于提供资源的路径 - http://guides.rubyonrails.org/asset_pipeline.html#changing-the-\_assets\_-path – sevenseacat 2013-05-02 14:10:58

+0

@sevenseacat,好的一点! – 2013-05-02 14:12:21

+1

谢谢。这是非常有道理的,但我不会想到它。我最终将资产更改为inventory_items以避免与资产管道冲突。注意:我首先尝试更改config.assets.prefix =“/ some_other_path”,但是不成功。看起来解决方案可能需要的不仅仅是这一行。 – 2013-05-02 19:36:47