Ruby on rails 3 什么会导致Rails 3在代码库之外出现资产预编译问题(例如:gems、ruby版本等)?
Rails代码库之外的什么样的东西会影响资产预编译 我的同事遇到了资产预编译问题,而它对我来说运行良好。我们正在运行相同的代码。版本控制中有Gemfile和Gemfile.lock,因此它们是相同的,而application.rb对我们两人都是相同的(例如,为我们两人设置了Ruby on rails 3 什么会导致Rails 3在代码库之外出现资产预编译问题(例如:gems、ruby版本等)?,ruby-on-rails-3,bundler,sprockets,Ruby On Rails 3,Bundler,Sprockets,Rails代码库之外的什么样的东西会影响资产预编译 我的同事遇到了资产预编译问题,而它对我来说运行良好。我们正在运行相同的代码。版本控制中有Gemfile和Gemfile.lock,因此它们是相同的,而application.rb对我们两人都是相同的(例如,为我们两人设置了config.assets.enabled=true) 这是两个相关的文件。下面是我们遇到的问题 app/views/layouts/application.html.erb: ... <%= stylesheet_li
config.assets.enabled=true
)
这是两个相关的文件。下面是我们遇到的问题
app/views/layouts/application.html.erb:
...
<%= stylesheet_link_tag "application", :media => "all" %>
...
注意:这些文件中有些是.css,有些是.css.less,有些是.css.scss
问题:
加载主页时,他会得到错误信息
TypeError in Static_pages#home
can't convert nil into String
(in /path/to/app/assets/stylesheets/layout.css.scss)
Extracted source (around line #20)
20: <%= stylesheet_link_tag "application", :media => "all" %>
具体来说,asset\u path.asset\u for(source,'css')
语句为我的同事而不是我引发了一个错误
我们还尝试卸载和重新安装rails和rvm。哦,感觉很愚蠢。。。我们修好了
rm-rf
'ing整个目录并重新克隆它修复了它。我猜是有一个额外的文件在里面飘来飘去什么的。他有没有尝试重新安装sass和Sprocket gems?我们只是尝试了一下,但没有修复它。
TypeError in Static_pages#home
can't convert nil into String
(in /path/to/app/assets/stylesheets/layout.css.scss)
Extracted source (around line #20)
20: <%= stylesheet_link_tag "application", :media => "all" %>
def stylesheet_link_tag(*sources)
...
sources.collect do |source|
if debug && asset = asset_paths.asset_for(source, 'css')
asset.to_a.map { |dep|
super(dep.pathname.to_s, { :href => path_to_asset(dep, :ext => 'css', :body => true, :protocol => :request, :digest => digest) }.merge!(options))
}
else
super(source.to_s, { :href => path_to_asset(source, :ext => 'css', :body => body, :protocol => :request, :digest => digest) }.merge!(options))
end
end.join("\n").html_safe