2016-11-28 51 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中添加并重新启动服务器。

相关问题