在 Rails 中使用 config.assets.precompile 在子目录中包含资产
Posted
技术标签:
【中文标题】在 Rails 中使用 config.assets.precompile 在子目录中包含资产【英文标题】:Including assets in subdirectories with config.assets.precompile in Rails 【发布时间】:2012-04-06 03:40:11 【问题描述】:我在 Heroku 上运行了一个 Rails 3.1.3 应用程序,通过 asset_sync
使用 S3 进行资产托管。我的app/assets/css
目录中包含一个包含两个文件的子目录:main.css.scss
和categories.css.scss
。我的production.rb
中有以下行:
config.assets.precompile += [ 'admin/main.css.scss', 'admin/categories.css.scss', 'print.css', 'products.css.scss', 'services.css.scss' ]
当我推送到 Heroku 时,我的所有资产都被预编译并上传,除了这两个文件。我是否需要执行某种黑魔法才能在此过程中包含这两个文件?
【问题讨论】:
您应该使用已编译资产的名称(即删除 .scss),但我不知道为什么这只影响子目录中的文件 我认为它是那样的挑剔。谢谢! 请添加答案并关闭问题。 弗雷德里克的评论是正确的。我会让他做出答案,我会接受的。 【参考方案1】:只需键入不带 scss 的文件名即可。
config.assets.precompile += [ 'admin/main.css', 'admin/categories.css', 'print.css', 'products.css', 'services.css' ]
【讨论】:
以上是关于在 Rails 中使用 config.assets.precompile 在子目录中包含资产的主要内容,如果未能解决你的问题,请参考以下文章
Rails 生产环境中的 config.assets.compile=true,为啥不呢?
具有资产的 Rails gem 不会添加到 config.assets.paths
Rails 应用程序 - 使用 Cloudfront 和 Heroku 进行资产交付
Rails 3.1 资产预编译 - 包括所有 javascript 文件
弃用警告:配置选项`config.serve_static_assets`已重命名为`config.serve_static_files`