2014-09-02 63 views
10

我在本地開發環境中設置了我的第二個「spree」商店,以使用Spry gem for RubyOnRails開展電子商務項目。Spree/Ruby on Rails中的資產路徑錯誤

第一家店的作品,但是當我關閉了「鐵軌服務器」的商店1,並嘗試啓動它的商店2,當我去http://localhost:3000我得到這個這個錯誤:


鏈輪:: Rails :: Helper :: AbsoluteAssetPathError in Spree :: Home#index

顯示/Users/pivot/.rvm/gems/ruby-2.0.0-p481/gems/spree_frontend-2.3.2/app/ views/spree/shared/_head.html.erb在哪裏行#7上升:

傳遞給助手的資產名稱不應包含「/ assets /」前綴。 /Users/pivot/.rvm/:而不是 「/assets/favicon.ico」,使用 「的favicon.ico」

提取的源(左右線#7):

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1" name="viewport"> 
    <%== meta_data_tags %> 
    <%= canonical_tag(current_store.url) %> 
    <%= favicon_link_tag image_path('favicon.ico') %> #THIS IS THE HIGHLIGHTED LINE 
    <%= stylesheet_link_tag 'spree/frontend/all', :media => 'screen' %> 
    <%= csrf_meta_tags %> 
    <%= javascript_include_tag 'spree/frontend/all' %> 

模板列入跟蹤寶石/紅寶石2.0.0-P481 /寶石/ spree_frontend-2.3.2 /應用/視圖/禮包/佈局/ spree_application.html.erb


此錯誤由熱潮視圖文件到來,並且違規行實際上只是傳遞「favicon.ico」而不是「assets/favicon.ico」,所以我不知道發生了什麼。

回答

20

我遇到了同樣的錯誤。 它由sprockets-rails 2.1.4引入,它不需要favicon_link_tag的/ assets前綴。

也許由於某些原因,當spree 2.3.2發佈時,sprockets-rails gem的版本是2.1.3。

我修復它編輯Gemfile.lock,手動更改從2.1.4到2.1.3的鏈輪軌道的版本(在我的具體情況下,沒有寶石需要確切的版本,請檢查您的Gemfile.lock以確保那!!!)。

我想在未來的版本中這將是固定的,所以更新sprockets-rails gem將不會產生更多的錯誤。

+1

這實際上已經在spree master中修復 - https://github.com/spree/spree/commit/75191b4dd28f575f743be6fec4bbd97a11e1b933 – sevenseacat 2014-09-04 03:07:38