2016-11-28 61 views
0

爲什麼我的主scss文件需要被稱爲'application.scss'?爲什麼它不能被命名爲'foo.scss'並被包含在application.html.erb中?Rails 5資產命名

manifest.js

// JS and CSS bundles 
// 
//= link_directory ../javascripts .js 
//= link_directory ../stylesheets .css 


// Images and fonts so that views can link to them 
// 
//= link_tree ../fonts 
//= link_tree ../images 

CSS導入當我使用 'foo.scss'

資產未聲明

​​

錯誤在生產中進行預編譯。 添加Rails.application.config.assets.precompile += %w(foo.css)config/initializers/assets.rb並重新啓動服務器

如果我使用的文件名「application.scss」它工作得很好。

回答

2

Ruby on Rails預編譯資產。編譯文件的默認匹配器包括application.jsapplication.css和所有非JS/CSS文件(這將自動包括所有的圖像資產)從app/assets文件夾,包括你的寶石:

[ Proc.new { |filename, path| path =~ /app\/assets/ && !%w(.js .css).include?(File.extname(filename)) }, /application.(css|js)$/ ] 

如果您有其他manifests或個人stylesheetsJavaScript文件包括,可以在config/initializers/assets.rb它們添加到預編譯數組:

Rails.application.config.assets.precompile += %w(foo.js foo.css) 

所以這告訴Rails預編譯manifest文件中的生產模式。這就是你的錯誤所說在assets.rb中添加並重新啓動服務器。