资产已过滤掉,将无法投放:添加
Rails.application.config.assets.precompile += %w( home.css )
来config/initializers/assets.rb
并重启您的服务器
我正在尝试设置多个布局,这些布局针对不同的.css.scss和.js设置,一个用于主页,另一个用于应用程序的各个部分。
我的家庭布局如下:
doctype html
= render 'layouts/components/view_source_msg'
html
head
title
= browser_title(yield(:title))
= render 'layouts/components/meta'
= render 'layouts/components/favicons'
= stylesheet_link_tag 'home'
= csrf_meta_tags
body[class="#{build_body_class} loading"]
== yield
= render 'layouts/components/analytics'
= javascript_include_tag 'home'
javascript:
$(function(){
$(document).foundation();
view_#{controller.controller_name.downcase}.init();
});
错误说明设置初始化程序assets.rb,我将其设置为:
Rails.application.config.assets.precompile += %w( *.css.sass )
Rails.application.config.assets.precompile += %w( *.css.scss )
Rails.application.config.assets.precompile += %w( *.js )
Rails.application.config.assets.precompile += %w( *.js.coffee )
Rails.application.config.assets.precompile += %w( *.js.coffee.erb )
但这不起作用......任何人都能指出我正确的方向吗?谢谢
更新
我能够通过......来实现这个目标。
Rails.application.config.assets.precompile += %w( home.css )
Rails.application.config.assets.precompile += %w( home.js )
但这似乎有点过时了。在我的旧的rails应用程序中,其他方法可以正常工作......
答案 0 :(得分:1)
自Rails v4以来,sprockets gem现在处理资产管道。它在app/assets/stylesheets
和vendor/assets/stylesheets
文件夹中查找样式表文件,因此如果您将home.css
放在public/assets/stylesheets
或其他内容中,则不会在那里查看。如果你特意告诉rails预先编译任何匹配该名称的资产,就像你在修复程序中那样,它会这样做,然后输出已编译的样式表并知道引用它,这就是它的工作原理。然而,这不是优选的惯例。 Ruby API for Coding Links to Assets