【问题标题】:Asset Path Error in Spree / Ruby on RailsSpree / Ruby on Rails 中的资产路径错误
【发布时间】:2014-09-02 23:17:38
【问题描述】:

我正在本地开发环境中设置我的第二个“spree”商店,以便使用 Spree gem for RubyOnRails 开展电子商务项目。

第一个商店有效,但是当我关闭 store1 的“rails 服务器”并尝试为 store2 启动它时,当我转到 http://localhost:3000 时,我收到了这个错误:


Sprockets::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/”前缀。代替“/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


这个错误来自一个狂欢视图文件,而违规行实际上只是传入“favicon.ico”而不是“assets/favicon.ico”,所以我不知道发生了什么。

【问题讨论】:

    标签: ruby-on-rails ruby spree


    【解决方案1】:

    我遇到了同样的错误。 它由 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 以确保这一点!!!)。

    我想在未来的版本中这将得到修复,因此更新 sprockets-rails gem 将不会再产生错误。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多