为什么我的主要scss文件需要被调用' application.scss'?为什么不能命名为' foo.scss'并包含在application.html.erb中?
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 import
<%= stylesheet_link_tag 'foo', media: 'all' %>
使用&#39; foo.scss&#39;
时出错未声明资产在生产中预编译。 将
Rails.application.config.assets.precompile += %w( foo.css )
添加到config/initializers/assets.rb
并重新启动您的服务器
如果我使用文件名&#39; application.scss&#39;它运作得很好。
答案 0 :(得分:2)
Ruby on Rails预编译资产。用于编译文件的默认匹配器包括application.js
,application.css
以及所有非JS / CSS文件(这将自动包括所有图像资源)来自app/assets
文件夹,包括您的宝石:
[ Proc.new { |filename, path| path =~ /app\/assets/ && !%w(.js .css).include?(File.extname(filename)) }, /application.(css|js)$/ ]
如果要包含其他manifests
或单个stylesheets
和JavaScript
个文件,可以将它们添加到config/initializers/assets.rb
中的预编译数组中:
Rails.application.config.assets.precompile += %w( foo.js foo.css )
因此,这告诉rails在生产模式下预编译您的manifest
文件。这就是你的错误所说的在assets.rb
中添加它并重新启动服务器。