【问题标题】:Rails won't compile assets, but shows the compile in the log, rake assets:precompile not generating filesRails 不会编译资产,但会在日志中显示编译,rake assets:precompile not generate files
【发布时间】:2014-06-28 22:30:01
【问题描述】:

当我运行rake assets:precompile 时,它在日志中显示它编译了plugin.jsknockout,但是,这些文件不在public/assets 中。怎么了?

application.js

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require ckeditor/init
//= require_tree .

搜索文件:

[vagrant@localhost BK-Development]$ find public/assets -name plugin.js
[vagrant@localhost BK-Development]$ find public/assets -name knock\*

[vagrant@localhost BK-Development]$ grep plugin.js log/production.log
Compiled ckeditor/plugins/youtube/plugin.js  (0ms)  (pid 32556)
Compiled ckeditor/plugins/youtube/plugin.js  (0ms)  (pid 32556)
[vagrant@localhost BK-Development]$ grep knockout log/production.log
Compiled knockout-3.1.0.js  (0ms)  (pid 32556)
Compiled knockout-3.1.0.js  (0ms)  (pid 32556)

[vagrant@localhost BK-Development]$ grep plugin.js public/assets/manifest.yml
[vagrant@localhost BK-Development]$ grep knockout public/assets/manifest.yml
[vagrant@localhost BK-Development]$

这些在我的production.rb 中。应该不相关。

config.serve_static_assets = true
config.assets.compress = true
config.assets.compile = true
config.assets.digest = true
config.assets.precompile += %w( bootstrap.modal.js bootstrap.modal.css application/_helper_classes.css 
bootstrap-datepicker.js bootstrap-datepicker.css books_admin.js categories.js posts.js )

Rails 3.2.14

【问题讨论】:

  • 你是用rake assets:precompile RAILS_ENV=production运行的吗?
  • 是的。它会自动添加:$ rake assets:precompile/usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby /usr/local/rvm/gems/ruby-2.0.0-p247@bk_development/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets

标签: ruby-on-rails ruby-on-rails-3 asset-pipeline precompile


【解决方案1】:

我将knockout-3.1.0.jsplugin.js 显式添加到config.assets.precompile 并生成public/assets 中的文件。我仍然不知道为什么它会生成除这些之外的所有其他 JS 文件。

【讨论】:

  • 请接受您自己的答案。您需要这样做,因为即使 Rails 编译了这些文件,除非您将它们添加到您的 precompile 数组中,否则它们将与链轮一起使用,即在您的 application.js 中。你可以检查application.js 确实在加载它。
  • 他们也不在application.js!我查看了文件并搜索了knockout.jsplugin.js 顶部的评论。所有其他文件都在application.js 中,但不是那两个。比如javascripts目录下有一个books.js,在public/assets下编译成自己的文件,在manifest.yml下也有,在application.js下也有,但是对于一些原因,knockout.jsplugin.js 没有编译为文件,甚至没有编译为 application.jsknockout.js 中的最高评论是 // Knockout JavaScript library v3.1.0
猜你喜欢
  • 1970-01-01
  • 2015-10-08
  • 1970-01-01
  • 2012-05-20
  • 1970-01-01
  • 2014-04-20
  • 1970-01-01
  • 1970-01-01
  • 2012-01-16
相关资源
最近更新 更多