我们需要许多不同的清单文件,以便仅为我们网站的各种功能区域提供适当的 JS 文件,但是我目前必须在每个文件中复制 JS 文件名和版本号,因此我们的清单看起来像:
libs.js
//= require json2
//= require underscore-1.3.1
//= require jquery
//= require jquery-ui-1.8.17.custom.min
//= require jquery_ujs
//= require farbtastic-1.3u.gizmos
//= require bootstrap-2.0.1
//= require highstock-1.1.4.src
//= require exporting-1.1.4.src
//= require modernizr-2.5.3
//= require application
//= require validation
//= require navigation
//= require styles
libs-embedded.js
//= require json2
//= require jquery
//= require highstock-1.1.4.src
//= require exporting-1.1.4.src
我试图通过使用这些 .js.erb 等效项更改这些清单文件来解决此问题:
libs.js
<%= ManifestHelper.require_json2%>
<%= ManifestHelper.require_underscore%>
<%= ManifestHelper.require_jquery%>
<%= ManifestHelper.require_jquery_ui%>
<%= ManifestHelper.require_jquery_ujs%>
<%= ManifestHelper.require_farbtastic%>
<%= ManifestHelper.require_bootstrap%>
<%= ManifestHelper.require_highstock%>
<%= ManifestHelper.require_exporting%>
<%= ManifestHelper.require_modernizr%>
<%= ManifestHelper.require_application%>
<%= ManifestHelper.require_validation%>
<%= ManifestHelper.require_navigation%>
<%= ManifestHelper.require_styles%>
libs-embedded.js
<%= ManifestHelper.require_json2%>
<%= ManifestHelper.require_jquery%>
<%= ManifestHelper.require_highstock%>
<%= ManifestHelper.require_exporting%>
ManifestHelper 类包括以下方法:
def self.require_underscore
'//= require underscore-1.3.1'
end
这是为了让我可以在一个地方管理 JS 文件和版本号,即使它们在许多清单文件中使用。
但是,当我尝试这样做时,我的 libs.js 文件看起来像:
//= require json2
//= require underscore-1.3.1
//= require jquery
//= require jquery-ui-1.8.17.custom.min
//= require jquery_ujs
//= require farbtastic-1.3u.gizmos
//= require bootstrap-2.0.1
//= require highstock-1.1.4
//= require exporting-1.1.4
//= require modernizr-2.5.3
//= require application
//= require validation
//= require styles
//= require navigation;
这有两个问题。首先出于某种原因引入了分号。第二个是生成的 .js 文件没有填充在 //= 需要指令中定义的连接 js 文件......看起来虽然 .erb 替换发生在 .js.erb 文件中,但它似乎在清单文件通读指令后发生。
我的问题是...任何人都可以提出解决此问题的方法或建议替代解决方案,以停止在我的每个清单中复制 js 文件和版本号...
谢谢,伊恩