我正在研究资产预编译,我很困惑。
让'说我创建了一个像rails new dummy
这样的新应用程序。
这是生成的app/assets/javascripts/application.js
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
它说This is a manifest file that'll be compiled into application.js
。到目前为止,我们仍然很清楚,但我发现我们可以在config/application.rb
:config.assets.precompile << \some_regex\
下设置另一种配置。
现在我不清楚更改application.js
与config.assets.precompile
之间的区别是选择要编译的内容。
我觉得我在这里错过了更大的图片,有人可以帮忙解释一下吗?
答案 0 :(得分:1)
app.js文件用于Javascript,顾名思义。由于文件中的下面的行,jquery,jquery_ujs,turbolinks javascript库以及/ app / assets / javascripts文件夹中的每个Javascript文件都将被预编译。
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
您可以使用“config.assets.precompile”添加其他要预编译的内容,例如默认情况下Rails无法识别的字体文件和其他文件。您也可以使用它来包含javascript文件。但是,这种需求很少见。
它的一个例子是......
config.assets.precompile += %w( .svg .eot .woff .ttf )
我希望这是有道理的。