我正在使用Rails 3.2.3并部署到Heroku的Cedar Stack,我遇到了资产管道问题并编译了我需要的jQuery UI文件。
具体而言,问题在两个我认为相关的问题中表现出来:
1)在开发中,我的下拉按钮不起作用,但在生产中它们可以
2)在开发中,我的日期选择器和滑块不起作用,它们也不能在生产中工作。但是,如果我在我的视图顶部调用javascript(<script src="/assets/jquery-ui.js" type="text/javascript"></script>
),则datepicker和滑块在开发中工作但不在生产中
我尝试了compiling the assets locally and also during slug compilation,但无济于事。
我的application.js:
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require bootstrap
//= require_tree .
我的Gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.3'
gem 'bootstrap-sass', '2.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.5'
gem 'date_validator'
gem 'jquery_datepicker'
group :development, :test do
gem 'sqlite3', '1.3.5'
gem 'rspec-rails', '2.9.0'
gem 'annotate', '~> 2.4.1.beta'
end
group :assets do
gem 'sass-rails', '3.2.4'
gem 'coffee-rails', '3.2.2'
gem 'uglifier', '1.2.3'
end
gem 'jquery-rails', '2.0.0'
group :test do
gem 'capybara', '1.1.2'
gem 'factory_girl_rails', '1.4.0'
end
group :production do
gem 'pg', '0.12.2'
end
我的config / environments / development.rb
# Do not compress assets
config.assets.compress = false
# Expands the lines which load the assets
config.assets.debug = true
我的配置/环境/ production.rb:
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
# Compress JavaScripts and CSS
config.assets.compress = true
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
# Generate digests for assets URLs
config.assets.digest = true
我的布局application.html.erb:
<%= javascript_include_tag "application" %>
答案 0 :(得分:4)
您没有向我们展示您的代码。 但我的猜测是它可能是一个dom load问题。
尝试将实例化放入jQuery()
调用;
以下是twitter-bootstrap-rails的一个例子;
jQuery(function($){
$("a[rel=popover]").popover();
$(".tooltip").tooltip();
$("a[rel=tooltip]").tooltip();
});
任何jquery UI自动完成程序都应该这样做
jQuery(function($){
$("input.search-autocomplete").autocomplete({
source: "/search"
});
});
答案 1 :(得分:1)
尝试将'jquery-ui'的名称更改为'jquery-ui-1.0'并将该名称的文件放入'app / assets'。我猜这个名字与宝石提供的东西发生了冲突。