简体   繁体   English

sample_app的“帐户”按钮在heroku上不起作用,但在本地服务器上起作用

[英]Account button for sample_app doesn't work on heroku, but works on local server

Sample_app from Hartl's tutorial doesn't work properly online, but works on local server. Hartl教程中的Sample_app无法在线正常运行,但可以在本地服务器上运行。

Problem is, when I click on account drop-down button, there isn't any action, just '#' symbol appears at the end of URL. 问题是,当我单击“帐户”下拉按钮时,没有任何动作,只是“#”符号出现在URL的末尾。 I read somewhere that problem might be in app/assets/javascript/application.js file and order of this part of code: 我在某个地方读到了问题,可能在app/assets/javascript/application.js文件中以及这部分代码的顺序:

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require_tree .

I tried every recommended order but it still doesn't work. 我尝试了所有推荐的订单,但仍然无法正常工作。 Anyone had the same problem? 有人有同样的问题吗?

I don't know the tutorial, but have you precompiled your assets? 我不知道该教程,但是您是否已预编译资产?

rake assets:precompile

This turns all your asset pipeline into stuff that a production server can use. 这会将您所有的资产管道变成生产服务器可以使用的东西。

On heroku you may need to do that as heroku run bundle exec rake assets:precompile 在heroku上,您可能需要这样做,因为heroku run bundle exec rake assets:precompile

I've had the same issue and here is what I did: 我遇到了同样的问题,这是我所做的:

  1. application.js file as follows: application.js文件如下:

     //= require jquery //= require bootstrap //= require jquery_ujs //= require turbolinks //= require_tree . 
  2. production.rb code as follows: production.rb代码如下:

      Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. # Code is not reloaded between requests. config.cache_classes = true # Eager load code on boot. This eager loads most of Rails and # your application in memory, allowing both threaded web servers # and those relying on copy on write to perform better. # Rake tasks automatically ignore this option for performance. config.eager_load = true # Full error reports are disabled and caching is turned on. config.consider_all_requests_local = false config.action_controller.perform_caching = true # Enable Rack::Cache to put a simple HTTP cache in front of your application # Add `rack-cache` to your Gemfile before enabling this. # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid. # config.action_dispatch.rack_cache = true # Disable Rails's static asset server (Apache or nginx will already do this). config.serve_static_assets = true #switched to true from false from advice on stackoverflow # Compress JavaScripts and CSS. config.assets.js_compressor = :uglifier # config.assets.css_compressor = :sass # Do not fallback to assets pipeline if a precompiled asset is missed. config.assets.compile = true #switched to true from false from advice on stackoverflow # Generate digests for assets URLs. config.assets.digest = true # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb # Specifies the header that your server uses for sending files. # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. config.force_ssl = true #zzz: uncommented from rails tutorial # Set to :debug to see everything in the log. config.log_level = :info # Prepend all log lines with the following tags. # config.log_tags = [ :subdomain, :uuid ] # Use a different logger for distributed setups. # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) # Use a different cache store in production. # config.cache_store = :mem_cache_store # Enable serving of images, stylesheets, and JavaScripts from an asset server. # config.action_controller.asset_host = "http://assets.example.com" # Ignore bad email addresses and do not raise email delivery errors. # Set this to true and configure the email server for immediate delivery to raise delivery errors. # config.action_mailer.raise_delivery_errors = false # Enable locale fallbacks for I18n (makes lookups for any locale fall back to # the I18n.default_locale when a translation cannot be found). config.i18n.fallbacks = true # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify # Disable automatic flushing of the log to improve performance. # config.autoflush_log = false # Use default logging formatter so that PID and timestamp are not suppressed. config.log_formatter = ::Logger::Formatter.new # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false end 
  3. Terminal commands: 终端命令:

     bundle exec rake assets:clean bundle exec rake assets:precompile bundle exec rake test git add -A git commit -m "finally fixing this dropdown menu" git push git push heroku 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM