我将在本地开发环境中建立我的第二个“spree ”商店,以使用Spree gem for RubyOnRails进行电子商务项目。

第一个商店可以工作,但是当我关闭store1的“rails服务器”并尝试为store2启动它时,当我转到http://localhost:3000时,出现此错误:

Sprockets::Rails::Helper::AbsoluteAssetPathError在Spree::Home#index

在第7行出现的地方显示/Users/pivot/.rvm/gems/ruby-2.0.0-p481/gems/spree_frontend-2.3.2/app/views/spree/shared/_head.html.erb:

传递给助手的 Assets 名称不应包含“/assets/”前缀。代替“/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' %>

模板包含的跟踪:/Users/pivot/.rvm/gems/ruby-2.0.0-p481/gems/spree_frontend-2.3.2/app/views/spree/layouts/spree_application.html.erb

该错误来自spree查看文件,并且有问题的行实际上仅是在传递“favicon.ico”而不是“assets/favicon.ico”,因此我不知道发生了什么。

最佳答案

我遇到了同样的错误。
它是由sprockets-rails 2.1.4引入的,它不再需要favicon_link_tag的/assets前缀。

也许出于某些原因,当 spree 2.3.2发布时,sprockets-rails gem的版本为2.1.3。

我修复了它,编辑Gemfile.lock,将sprockets-rails的版本从2.1.4手动更改为2.1.3(在我的特定情况下,没有gem要求该版本准确无误,请检查您的Gemfile.lock以确保该! )。

我想在将来的版本中,此问题将得到解决,因此更新链轮- rails 的gem将不再产生错误。

关于ruby-on-rails - Spree/Ruby on Rails中的 Assets 路径错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25633822/

10-15 08:29