【发布时间】:2026-02-10 22:25:02
【问题描述】:
资产被过滤掉并且不会被提供:添加
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 应用程序中,其他方法可以正常工作......
【问题讨论】:
-
我对您的语法感到困惑。我只是使用了一个工作应用程序,添加了一个新的 test.css 文件,并使用
stylesheet_link_tag方法从布局中引用它,并且在没有您所做的修复的情况下,rails 使用它没有问题(我只是让它将所有文本更改为红色表示它有效)。这是一个愚蠢的问题,但您确实在您的app/assets/stylesheets文件夹中放置了一个home.css文件,对吧? -
@RobW。是的,我做到了,但它实际上是在 home.css.scss 文件中。并不是说 sass 扩展很重要,但我更关心为什么通配符不起作用。我知道我在这里遗漏了一些小东西。
标签: ruby-on-rails ruby asset-pipeline