首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将config.assets.precompile用于目录而不是单个文件?

如何将config.assets.precompile用于目录而不是单个文件?
EN

Stack Overflow用户
提问于 2012-09-27 12:12:49
回答 5查看 16.8K关注 0票数 16

如何在生产环境中使用config.assets.precompile仅包含“lib/assets/javascripts”、“lib/assets/stylesheets”、“vendor/assets/javascripts”和“vendor/assets/stylesheets”中的文件?

基本上是这样的:

代码语言:javascript
复制
config.assets.precompile += %w( pagespecific.js anotherpage.js )

但用于自动包含非“app/assets/javascripts”或“app/assets/stylesheets”的特定目录中的文件。

*编辑:添加我最终用于页面特定js的解决方案

代码语言:javascript
复制
config.assets.precompile += ['pages/*.js']
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-09-27 13:18:38

你可以简单地写成这样:

代码语言:javascript
复制
config.assets.precompile += ['directory/*']
票数 31
EN

Stack Overflow用户

发布于 2012-09-27 12:59:15

编译资源的目的是构建一个(或少量)文件,以最小化来自浏览器的HTTP请求数量。

如果你打算单独服务每个文件,那么为什么不禁用预编译呢?

要按预期使用预编译,请使用链轮的require_directory将整个目录构建为一个文件

代码语言:javascript
复制
//= require_directory ./awesome_js_app

...and列出config.assets.precompile数组中文件。

默认情况下,所有CSS都内置于application.js中的application.css和JS中。您可以使用config/environments/production.rb中的预编译指令添加更多要编译的顶级文件(如果愿意,还可以添加其他环境)。例如:

代码语言:javascript
复制
config.assets.precompile += %w( public.css public.js )

然后,这些顶级文件中的链轮//= require ...指令将确定最终编译文件的组成。

您可以在布局中使用这些附加的顶级文件,以便为某些视图提供不同的CSS & JS。

票数 3
EN

Stack Overflow用户

发布于 2014-10-01 15:26:34

将其包含为资产路径可能会更好一些(根据您的示例解决方案):

代码语言:javascript
复制
config.assets.paths << Rails.root.join('app', 'assets', 'javascripts', 'pages')

它还允许您包含不在资产目录中的路径(例如,包含bootstrap-sass)。然后,将这些路径添加到公共目录中的assets文件夹,如果使用类似asset_sync的内容,则会将这些路径推送到您的资产位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12613980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档