【发布时间】:2016-04-27 11:06:27
【问题描述】:
您的建议将不胜感激。
Heroku 和我的生产环境没有使用我的 jQuery 编码(Javascript 文件)——我已经尝试了每一个代码、建议和命令 仍然不成功。我在下面粘贴了我的文件-如果可以的话 指出我做错了什么需要纠正 非常感谢。
-
views/layout/application.html.erb
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "vendor/modernizr" %>
<%= csrf_meta_tags %>
<%= favicon_link_tag 'img-logo-five.png' %>
<%= favicon_link_tag 'apple-touch-icon-#{196}x#{196}.png', rel: 'apple-touch-icon', type:'image/png' %>
</head>
<body data-no-turbolink="true">
<div class="medium-12 columns container">
<% if notice %>
<div id="notice_wrapper">
<p id="notice"><%= notice %></p>
</div>
<% elsif alert %>
<div id="alert_wrapper">
<p id="alert"><%= alert %></p>
</div>
<% end %>
<%= yield %>
</div>
<%= javascript_include_tag "application" %>
</body>
</html>
宝石文件
source 'https://rubygems.org'
gem 'rails', '4.1.10'
gem 'bcrypt', '3.1.7'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'foundation-rails', '5.3.1.0'
gem 'simple_form'
gem "font-awesome-rails"
gem 'devise'
gem "ransack", github: "activerecord-hackery/ransack", branch: "rails-4.1"
gem "polyamorous", :github => "activerecord-hackery/polyamorous"
gem 'carrierwave'
gem 'rmagick'
gem 'acts_as_commentable'
gem "cocoon"
gem 'geocoder'
gem 'social-share-button'
gem 'twilio-ruby'
gem 'cancancan', '~> 1.10'
gem 'public_activity'
gem 'foundation-datetimepicker-rails'
gem 'jquery-ui-rails'
group :development, :test do
gem 'sqlite3', '1.3.9'
gem 'byebug', '3.4.0'
gem 'web-console', '2.0.0.beta3'
gem 'spring', '1.1.3'
gem 'quiet_assets'
gem 'mailcatcher'
gem "better_errors"
gem 'awesome_print'
gem 'pry'
gem 'binding_of_caller'
end
group :test do
gem 'minitest-reporters', '1.0.5'
gem 'mini_backtrace', '0.1.3'
gem 'guard-minitest', '2.3.1'
end
group :production do
gem 'pg', '0.17.1'
gem 'rails_12factor'
gem 'unicorn', '4.8.3'
end
config/environments/production.rb
Rails.application.configure do
config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_files = true
config.assets.compress = true
config.assets.js_compressor = :uglifier
config.assets.compile = true
config.assets.precompile = ['*.js', '*.css', '*.css.erb']
config.assets.digest = true
config.log_level = :info
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.log_formatter = ::Logger::Formatter.new
config.active_record.dump_schema_after_migration = false
config.action_mailer.default_url_options = { host: 'website.herokuapp.com' }
Rails.application.routes.default_url_options[:host] = 'website.herokuapp.com'
end
config/locales/application.rb
require File.expand_path('../boot', __FILE__)
require 'rails/all'
Bundler.require(*Rails.groups)
module RecruitmentAfricaApp
class Application < Rails::Application
config.assets.precompile += %w(*.js)
config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: "smtp.mandrillapp.com", #if using a another domain this will be provided by the domain company
port: 111,
enable_starttls_auto: true,
user_name: "email@gmail.com", #this would need to be for example info@recruitmentafrica.com
password: "#####",
authentication: :login,
domain: "gmail.com",
}
end
end
assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require foundation
//= require turbolinks
//= require jquery-ui
//= require cocoon
//= require social-share-button
//= require foundation-datetimepicker
//= require_tree .
/*=========================================
general js content
=========================================*/
$(function(){ $(document).foundation(); });
// sigin-in alert message | devise signin/signout error messages
$(document).ready(function(){
setTimeout(function(){
$('#notice_wrapper').fadeOut("slow", function() {
$(this).remove();
})
}, 2500);
});
// sigin-out alert message | devise signin/signout error messages
$(document).ready(function(){
setTimeout(function(){
$('#alert_wrapper').fadeOut("slow", function() {
$(this).remove();
})
}, 2500);
});
// jquery-ui datepicker
$(document).ready(function() {
$('.datepicker').datepicker({ dateFormat: 'MM dd, yy' });
// $('.datepicker').datepicker({ dateFormat: 'D, dd M yy' });
});
assets/stylesheets/application.css
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
*= require_tree .
*= require_self
*= require foundation_and_overrides
*= require foundation
*= require social-share-button
*= require jquery-ui
*= require font-awesome
*/
我尝试过的命令和代码,但仍然没有成功
- [1.]
i have re-arranged my js files in application.js - [2.] 我已在 production.rb 中设置:
config.assets.compile = true - [3.] 我已经运行了命令:
rake assets:precompile然后git push heroku master - [4.] 我已经运行了命令:
RAILS_ENV=production bundle exec rake assets:precompile - [5.] 我已经运行了命令:
heroku run rake assets:precompile --app appName - [6.] 我的 javascript 没有在线返回
404 HTTP error - [7.] 我尝试在 gemfile
gem 'jquery-turbolinks'和 application.js//= require jquery.turbolinks中添加 gem - [8.] 在 application.rb 我添加了:
config.assets.precompile += %w(*.js) - [9.] 在 production.rb 我添加了
config.assets.precompile = ['*.js', '*.css', '*.css.erb'] - [10.] 我将一个简单的警报代码
alert('some-unique-string')推送到 heroku 但在控制台中看不到警报 - [11.] 我已设置:
assets.compress=true - [12.] 我已设置:
config.assets.compress = true并运行命令RAILS_ENV=production bundle exec rake assets:precompile - [14.] 我安装了jquery.migrate.plugin 我不确定还可以做什么,非常感谢您的帮助。非常感谢
【问题讨论】:
-
看来你已经完成了我建议的所有事情,除了祈祷。如果 JS 文件真的正在加载,您是否在浏览器中检查过?这总是一个很好的步骤。
-
@EddeAlmeida 似乎 heroku 已经拿起文件但没有阅读它。当我在控制台
heroku run rails console --app appName然后puts helper.asset_path("application.js")中运行命令时 - 我在控制台/assets/application-5391a5d90755dd28e1589ea6721a9144.js中得到这个作为回报 -
那你告诉我文件没有回到你的浏览器。
标签: javascript jquery ruby-on-rails heroku