繁体   English   中英

为什么预编译资产不再起作用?

[英]Why does precompile assets no longer work?

Rails 4.2.1,Ruby 2.2.6,链轮3.7.1,sprockets-rails 3.2.0

我正在尝试使用新的.js文件部署到我的登台服务器,并且预编译没有执行任何操作。 这是带有“ --trace”的输出。

  ** Invoke assets:precompile (first_time)
  ** Invoke assets:environment (first_time)
  ** Execute assets:environment
  ** Invoke environment (first_time)
  ** Execute environment
  ** Execute assets:precompile
  ** Invoke ckeditor:nondigest (first_time)
  ** Invoke environment 
  ** Execute ckeditor:nondigest

我试过运行rake asset:clean,assets:clobber和assets:precompile,在有和没有'RAILS_ENV = staging bundle exec'的情况下使用这些命令-不做任何事情。 我删除了Assets文件夹,然后再次运行了预编译-什么都没有。 我增加了assets.version-什么都没有。

我尝试将资产的precompile指令放在/config/initializers/assets.rb、/config/environments/staging.rb和/config/application.rb中

 Rails.application.config.assets.version = '1.0.2'
 Rails.application.config.assets.precompile += %w(
  admin.css
  admin.js
  new_file.js
 )

有没有办法告诉资产:precompile正在查看哪个文件?

*更新*

设置asset.compile = true并进行部署可以使资产进行预编译。 我给人的印象是,该指令将使Rails可以即时为资产提供服务,而不是使用预编译的资产。 这是正确的吗?

 Rails.application.config.assets.compile = true

是的,将config.assets.compile = true设置将config.assets.compile = true应用程序的性能,并导致生产中随机地进行长页面加载。 尝试运行“捆绑exec rake资产:预编译RAILS_ENV = production”,以便它使用您的生产环境配置。 文件。 至于您在哪里寻找预编译的其他问题,rails配置中有一个前缀设置。 您可以用来说明您希望将预编译资产转到何处。 防爆。 config.assets.prefix = '/production'但默认设置为公共资产文件夹。

更新:(我打算就该主题写一篇长篇文章,但它的创建者似乎写了为什么要避免详细介绍,可以在以下链接中找到:

在Rails生产中config.assets.compile = true,为什么不呢?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM