我正在使用seyhunak's gem开发一个带有Twitter Bootstrap的3.1Rails应用程序。
在生产模式下,我可以通过管道预编译使用基本的引导CSS和JS:
RAILS_ENV=production bundle exec rake assets:precompile使用gem文件:
group :assets do
gem 'sass-rails', '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
gem "twitter-bootstrap-rails"
end和application.js文件:
//= require_tree .
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require bootstrap-tab
//= require bootstrap-modal
//= require bootstrap-dropdown
//= require bootstrap-popover这个应用程序运行得很好,除了像modals和dropdown这样的引导插件。这些插件以静态javascript库的形式存在于供应商资产目录中:
/vendor/assets/javascripts/bootstrap-dropdown.js
...我不确定这些文件是否正在预编译,我如何才能做到这一点?
发布于 2012-04-21 01:24:13
找到了!
这不是bootstrap的问题,而是正确预编译jQuery的问题。并且不需要包括用于各个插件的javascript文件。它们已经包含在主twitter/bootstrap中。
问题已通过重新排列javascripts文件解决,如下所示:
application.js
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrapGemfile
group :assets do
gem 'sass-rails', '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
gem "twitter-bootstrap-rails"
end
gem 'jquery-rails', '>= 1.0.12'预编译了资产并成功了!
发布于 2012-04-20 17:12:01
在您的/vendor/assets/javascripts中放置一个包含以下内容的文件vendor_js.js:
//= require_tree .现在,在您的/app/assets/javascripts/application.js中包含一行
//= require vendor_js您可以自定义vendor_js.js以仅包含特定的供应商插件,例如,通过使用//= require bootstrap-dropdown在供应商javascripts目录中仅包含引导程序下拉菜单。
更新以反映评论
由于您是手动将引导JS文件放入供应商/javascripts中,因此请从application.js中删除所有与引导相关的require,并将它们粘贴到上面提到的vendor_js.js中。确保路径正确(以防将文件放在子目录中)。还要确保单独包含每个文件,并将工具提示放在popover之前,因为popover取决于首先加载的工具提示。
https://stackoverflow.com/questions/10241976
复制相似问题