我正面临一个让我发疯的问题 - 主要是因为没有日志或错误消息以及它可以在localhost上运行而不是生产。
问题:
我转到登录页面 - 输入凭据(100%正确)并点击登录按钮。未登录且没有消息,没有日志条目,未登录。它在localhost上按预期工作。
尽管我正在使用的配置,我几乎无法给你 - 我希望其他人遇到这个问题并且能够解决它。
Ubuntu版本:
分销商ID:Ubuntu 说明:Ubuntu 14.04.3 LTS 发布:14.04 代号:可信赖
Rails版本:
Rails 5.0.1
Ruby版本:
ruby 2.4.0p0(2016-12-24修订版57164)[x86_64-linux]
设计版本:
设计(4.2.0)
Nginx版本:
nginx版本:nginx / 1.10.2
乘客版本:
Phusion Passenger 5.1.2
生产日志:
I, [2017-02-19T16:42:34.671850 #12709] INFO -- : [2c7d1cea-31d4-414f-a3bf-0ca1f0434a66] Processing by StaticPagesController#teaser as HTML
I, [2017-02-19T16:42:34.672014 #12709] INFO -- : [2c7d1cea-31d4-414f-a3bf-0ca1f0434a66] Parameters: {"locale"=>"en"}
I, [2017-02-19T16:42:34.678782 #12709] INFO -- : [2c7d1cea-31d4-414f-a3bf-0ca1f0434a66] Rendering static_pages/teaser.html.haml within layouts/teaser
I, [2017-02-19T16:42:34.719835 #12709] INFO -- : [2c7d1cea-31d4-414f-a3bf-0ca1f0434a66] Rendered static_pages/teaser.html.haml within layouts/teaser (40.8ms)
I, [2017-02-19T16:42:34.729883 #12709] INFO -- : [2c7d1cea-31d4-414f-a3bf-0ca1f0434a66] Rendered layouts/tracking/_google_analytics.html.haml (1.7ms)
I, [2017-02-19T16:42:34.737139 #12709] INFO -- : [2c7d1cea-31d4-414f-a3bf-0ca1f0434a66] Rendered layouts/navs/_navigation_teaser.html.haml (6.4ms)
I, [2017-02-19T16:42:34.740481 #12709] INFO -- : [2c7d1cea-31d4-414f-a3bf-0ca1f0434a66] Rendered layouts/footers/_bottom.html.haml (2.4ms)
I, [2017-02-19T16:42:34.741421 #12709] INFO -- : [2c7d1cea-31d4-414f-a3bf-0ca1f0434a66] Completed 200 OK in 69ms (Views: 66.8ms)
D, [2017-02-19T16:42:34.743712 #12709] DEBUG -- : [2c7d1cea-31d4-414f-a3bf-0ca1f0434a66] DEBUG: Chewy strategies stack: [2] -> atomic @ /usr/local/lib/ruby/gems/2.4.0/gems/chewy-0.9.0/lib/chewy/railtie.rb:17
I, [2017-02-19T16:42:38.140233 #12709] INFO -- : [efa8a6ab-c0a9-40c5-ad5c-efc5fea35ff2] Started GET "/en/users/login/" for 213.225.34.85 at 2017-02-19 16:42:38 +0100
D, [2017-02-19T16:42:38.140679 #12709] DEBUG -- : [efa8a6ab-c0a9-40c5-ad5c-efc5fea35ff2] DEBUG: Chewy strategies stack: [2] <- atomic @ /usr/local/lib/ruby/gems/2.4.0/gems/chewy-0.9.0/lib/chewy/railtie.rb:17
I, [2017-02-19T16:42:38.143560 #12709] INFO -- : [efa8a6ab-c0a9-40c5-ad5c-efc5fea35ff2] Processing by Devise::SessionsController#new as HTML
I, [2017-02-19T16:42:38.143632 #12709] INFO -- : [efa8a6ab-c0a9-40c5-ad5c-efc5fea35ff2] Parameters: {"locale"=>"en"}
I, [2017-02-19T16:42:38.181675 #12709] INFO -- : [efa8a6ab-c0a9-40c5-ad5c-efc5fea35ff2] Rendering devise/sessions/new.html.haml within layouts/devise
I, [2017-02-19T16:42:38.189833 #12709] INFO -- : [efa8a6ab-c0a9-40c5-ad5c-efc5fea35ff2] Rendered devise/sessions/new.html.haml within layouts/devise (8.0ms)
I, [2017-02-19T16:42:38.196498 #12709] INFO -- : [efa8a6ab-c0a9-40c5-ad5c-efc5fea35ff2] Rendered layouts/tracking/_google_analytics.html.haml (0.3ms)
I, [2017-02-19T16:42:38.199537 #12709] INFO -- : [efa8a6ab-c0a9-40c5-ad5c-efc5fea35ff2] Rendered layouts/_error_messages.html.haml (2.2ms)
I, [2017-02-19T16:42:38.201012 #12709] INFO -- : [efa8a6ab-c0a9-40c5-ad5c-efc5fea35ff2] Rendered layouts/footers/_bottom_devise.html.haml (0.8ms)
I, [2017-02-19T16:42:38.201777 #12709] INFO -- : [efa8a6ab-c0a9-40c5-ad5c-efc5fea35ff2] Completed 200 OK in 58ms (Views: 23.5ms | ActiveRecord: 2.2ms)
D, [2017-02-19T16:42:38.202966 #12709] DEBUG -- : [efa8a6ab-c0a9-40c5-ad5c-efc5fea35ff2] DEBUG: Chewy strategies stack: [2] -> atomic @ /usr/local/lib/ruby/gems/2.4.0/gems/chewy-0.9.0/lib/chewy/railtie.rb:17
I, [2017-02-19T16:42:42.616812 #12709] INFO -- : [3d15563f-bb6c-4a4e-84b4-46e473e237be] Started GET "/en/users/login/" for 213.225.34.85 at 2017-02-19 16:42:42 +0100
D, [2017-02-19T16:42:42.617237 #12709] DEBUG -- : [3d15563f-bb6c-4a4e-84b4-46e473e237be] DEBUG: Chewy strategies stack: [2] <- atomic @ /usr/local/lib/ruby/gems/2.4.0/gems/chewy-0.9.0/lib/chewy/railtie.rb:17
I, [2017-02-19T16:42:42.618504 #12709] INFO -- : [3d15563f-bb6c-4a4e-84b4-46e473e237be] Processing by Devise::SessionsController#new as HTML
I, [2017-02-19T16:42:42.618574 #12709] INFO -- : [3d15563f-bb6c-4a4e-84b4-46e473e237be] Parameters: {"locale"=>"en"}
I, [2017-02-19T16:42:42.620779 #12709] INFO -- : [3d15563f-bb6c-4a4e-84b4-46e473e237be] Rendering devise/sessions/new.html.haml within layouts/devise
I, [2017-02-19T16:42:42.622348 #12709] INFO -- : [3d15563f-bb6c-4a4e-84b4-46e473e237be] Rendered devise/sessions/new.html.haml within layouts/devise (1.5ms)
I, [2017-02-19T16:42:42.624039 #12709] INFO -- : [3d15563f-bb6c-4a4e-84b4-46e473e237be] Rendered layouts/tracking/_google_analytics.html.haml (0.3ms)
I, [2017-02-19T16:42:42.624547 #12709] INFO -- : [3d15563f-bb6c-4a4e-84b4-46e473e237be] Rendered layouts/_error_messages.html.haml (0.2ms)
I, [2017-02-19T16:42:42.624961 #12709] INFO -- : [3d15563f-bb6c-4a4e-84b4-46e473e237be] Rendered layouts/footers/_bottom_devise.html.haml (0.2ms)
I, [2017-02-19T16:42:42.625530 #12709] INFO -- : [3d15563f-bb6c-4a4e-84b4-46e473e237be] Completed 200 OK in 7ms (Views: 5.0ms | ActiveRecord: 0.0ms)
D, [2017-02-19T16:42:42.626717 #12709] DEBUG -- : [3d15563f-bb6c-4a4e-84b4-46e473e237be] DEBUG: Chewy strategies stack: [2] -> atomic @ /usr/local/lib/ruby/gems/2.4.0/gems/chewy-0.9.0/lib/chewy/railtie.rb:17
Nginx Log(error.log):
[ 2017-02-19 16:39:22.3744 11673/7fbd8cdd47c0 age/Ust/UstRouterMain.cpp:492 ]: Received command to shutdown gracefully. Waiting until all clients have disconnected...
[ 2017-02-19 16:39:22.3744 11673/7fbd85dca700 Ser/Server.h:817 ]: [UstRouterApiServer] Freed 0 spare client objects
[ 2017-02-19 16:39:22.3745 11673/7fbd85dca700 Ser/Server.h:464 ]: [UstRouterApiServer] Shutdown finished
[ 2017-02-19 16:39:22.3747 11673/7fbd865cb700 Ser/Server.h:464 ]: [UstRouter] Shutdown finished
[ 2017-02-19 16:39:22.3748 11673/7fbd8cdd47c0 age/Ust/UstRouterMain.cpp:523 ]: Passenger UstRouter shutdown finished
[ 2017-02-19 16:39:22.6189 11663/7f5c6c8fe7c0 age/Cor/CoreMain.cpp:1055 ]: Passenger core shutdown finished
[ 2017-02-19 16:39:23.4450 12221/7fbf2251a7c0 age/Wat/WatchdogMain.cpp:1281 ]: Starting Passenger watchdog...
[ 2017-02-19 16:39:23.4539 12224/7f409d5e37c0 age/Cor/CoreMain.cpp:1070 ]: Starting Passenger core...
[ 2017-02-19 16:39:23.4541 12224/7f409d5e37c0 age/Cor/CoreMain.cpp:245 ]: Passenger core running in multi-application mode.
[ 2017-02-19 16:39:23.4585 12224/7f409d5e37c0 age/Cor/CoreMain.cpp:820 ]: Passenger core online, PID 12224
[ 2017-02-19 16:39:23.4675 12230/7f8a2efc77c0 age/Ust/UstRouterMain.cpp:529 ]: Starting Passenger UstRouter...
[ 2017-02-19 16:39:23.4685 12230/7f8a2efc77c0 age/Ust/UstRouterMain.cpp:342 ]: Passenger UstRouter online, PID 12230
[ 2017-02-19 16:39:25.6619 12224/7f409d4cb700 age/Cor/SecurityUpdateChecker.h:464 ]: Security update check: no update found (next check in 24 hours)
App 12257 stdout:
App 12382 stdout:
2017/02/19 16:42:21 [info] 12537#12537: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:74
[ 2017-02-19 16:42:21.7235 12224/7f4096e14700 age/Cor/CoreMain.cpp:585 ]: Signal received. Gracefully shutting down... (send signal 2 more time(s) to force shutdown)
[ 2017-02-19 16:42:21.7236 12224/7f409d5e37c0 age/Cor/CoreMain.cpp:989 ]: Received command to shutdown gracefully. Waiting until all clients have disconnected...
[ 2017-02-19 16:42:21.7236 12224/7f409d5e37c0 age/Cor/CoreMain.cpp:907 ]: Checking whether to disconnect long-running connections for process 12382, application /home/sandbox/rails/windhagermediahub/public (production)
[ 2017-02-19 16:42:21.7239 12224/7f4096592700 Ser/Server.h:817 ]: [ServerThr.2] Freed 128 spare client objects
[ 2017-02-19 16:42:21.7239 12224/7f4096592700 Ser/Server.h:464 ]: [ServerThr.2] Shutdown finished
[ 2017-02-19 16:42:21.7242 12224/7f4096e14700 Ser/Server.h:817 ]: [ServerThr.1] Freed 128 spare client objects
[ 2017-02-19 16:42:21.7242 12224/7f4096e14700 Ser/Server.h:464 ]: [ServerThr.1] Shutdown finished
[ 2017-02-19 16:42:21.7243 12224/7f4095d10700 Ser/Server.h:817 ]: [ApiServer] Freed 0 spare client objects
[ 2017-02-19 16:42:21.7243 12224/7f4095d10700 Ser/Server.h:464 ]: [ApiServer] Shutdown finished
[ 2017-02-19 16:42:21.7244 12224/7f409d5e37c0 age/Cor/CoreMain.cpp:907 ]: Checking whether to disconnect long-running connections for process 12382, application /home/sandbox/rails/windhagermediahub/public (production)
[ 2017-02-19 16:42:21.7265 12230/7f8a23fff700 age/Ust/UstRouterMain.cpp:422 ]: Signal received. Gracefully shutting down... (send signal 2 more time(s) to force shutdown)
[ 2017-02-19 16:42:21.7266 12230/7f8a2efc77c0 age/Ust/UstRouterMain.cpp:492 ]: Received command to shutdown gracefully. Waiting until all clients have disconnected...
[ 2017-02-19 16:42:21.7266 12230/7f8a237fe700 Ser/Server.h:817 ]: [UstRouterApiServer] Freed 0 spare client objects
[ 2017-02-19 16:42:21.7266 12230/7f8a237fe700 Ser/Server.h:464 ]: [UstRouterApiServer] Shutdown finished
[ 2017-02-19 16:42:21.7268 12230/7f8a23fff700 Ser/Server.h:464 ]: [UstRouter] Shutdown finished
[ 2017-02-19 16:42:21.7272 12230/7f8a2efc77c0 age/Ust/UstRouterMain.cpp:523 ]: Passenger UstRouter shutdown finished
[ 2017-02-19 16:42:21.9690 12224/7f409d5e37c0 age/Cor/CoreMain.cpp:1055 ]: Passenger core shutdown finished
[ 2017-02-19 16:42:22.7904 12548/7f4dcba4d7c0 age/Wat/WatchdogMain.cpp:1281 ]: Starting Passenger watchdog...
[ 2017-02-19 16:42:22.8003 12551/7f388a8967c0 age/Cor/CoreMain.cpp:1070 ]: Starting Passenger core...
[ 2017-02-19 16:42:22.8005 12551/7f388a8967c0 age/Cor/CoreMain.cpp:245 ]: Passenger core running in multi-application mode.
[ 2017-02-19 16:42:22.8053 12551/7f388a8967c0 age/Cor/CoreMain.cpp:820 ]: Passenger core online, PID 12551
[ 2017-02-19 16:42:22.8155 12557/7fd30e4537c0 age/Ust/UstRouterMain.cpp:529 ]: Starting Passenger UstRouter...
[ 2017-02-19 16:42:22.8165 12557/7fd30e4537c0 age/Ust/UstRouterMain.cpp:342 ]: Passenger UstRouter online, PID 12557
[ 2017-02-19 16:42:24.9877 12551/7f388a77e700 age/Cor/SecurityUpdateChecker.h:464 ]: Security update check: no update found (next check in 24 hours)
App 12582 stdout:
App 12709 stdout:
更新:
用Clearance替换设计后,问题仍然存在。根据日志,它试图发出GET请求,而它应该是POST。该表单适用于localhost,一切看起来都正确。我甚至在登录表单中指定了该方法,但它仍然发出了GET。我在这里咬灰尘。
UPDATE2:
我完全删除了Devise并在代码中对它进行了任何引用,然后重新设置它 - 没有对Devise进行任何修改或自定义。正在使用标准视图和表单。
SignIn表格(会话新)
<h2>Log in</h2>
<%= simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
<div class="form-inputs">
<%= f.input :email, required: false, autofocus: true %>
<%= f.input :password, required: false %>
<%= f.input :remember_me, as: :boolean if devise_mapping.rememberable? %>
</div>
<div class="form-actions">
<%= f.button :submit, "Log in" %>
</div>
<% end %>
<%= render "devise/shared/links" %>
更新3
的routes.rb
Rails.application.routes.draw do
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
root to: 'static_pages#redirect'
localized do
match '', to: 'static_pages#teaser', :as => 'teaser', via: 'get'
scope 'legal' do
match 'data-privacy', to: 'static_pages#data_privacy', :as => 'data-privacy', via: 'get'
match 'terms-of-use', to: 'static_pages#terms_of_use', :as => 'terms_of_use', via: 'get'
match 'cookie-policy', to: 'static_pages#cookie_policy', :as => 'cookie_policy', via: 'get'
end
devise_for :users, :path_names => {:sign_in => 'login', :sign_out => 'logout'}
scope 'dashboard' do
match 'wh-a-seo-at', to: 'dashboards#seo_at', :as => 'dashboard_seo_at', via: 'get'
match 'wh-a-seo-de', to: 'dashboards#seo_de', :as => 'dashboard_seo_de', via: 'get'
match 'wh-a-uiux', to: 'dashboards#uiux', :as => 'dashboard_uiux', via: 'get'
resources :links
resources :key_performance_indicators
resources :keyword_lists do
resources :keyword_dates
resources :keyword_groups do
resources :keywords do
resources :keyword_rankings
end
end
end
end
end
end
输出:RAILS_ENV =生产包exec rake
georg$ RAILS_ENV=production bundle exec rake routes
Prefix Verb URI Pattern Controller#Action
root GET / static_pages#redirect
teaser_en GET /en static_pages#teaser {:locale=>"en"}
data_privacy_en GET /en/legal/data-privacy(.:format) static_pages#data_privacy {:locale=>"en"}
terms_of_use_en GET /en/legal/terms-of-use(.:format) static_pages#terms_of_use {:locale=>"en"}
cookie_policy_en GET /en/legal/cookie-policy(.:format) static_pages#cookie_policy {:locale=>"en"}
new_user_session_en GET /en/users/login(.:format) devise/sessions#new {:locale=>"en"}
user_session_en POST /en/users/login(.:format) devise/sessions#create {:locale=>"en"}
destroy_user_session_en DELETE /en/users/logout(.:format) devise/sessions#destroy {:locale=>"en"}
etc.
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
# Disable serving static files from the `/public` folder by default since
# Apache or NGINX already handles this.
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
# 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 = false
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = 'http://assets.example.com'
# 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
# Mount Action Cable outside main process or domain
# config.action_cable.mount_path = nil
# config.action_cable.url = 'wss://example.com/cable'
# config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
# config.force_ssl = true
# Use the lowest log level to ensure availability of diagnostic information
# when problems arise.
config.log_level = :debug
# Prepend all log lines with the following tags.
config.log_tags = [ :request_id ]
# Use a different cache store in production.
# config.cache_store = :mem_cache_store
# Use a real queuing backend for Active Job (and separate queues per environment)
# config.active_job.queue_adapter = :resque
# config.active_job.queue_name_prefix = "PRODEV0007_#{Rails.env}"
config.action_mailer.perform_caching = false
# 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
# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new
# Use a different logger for distributed setups.
# require 'syslog/logger'
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
if ENV["RAILS_LOG_TO_STDOUT"].present?
logger = ActiveSupport::Logger.new(STDOUT)
logger.formatter = config.log_formatter
config.logger = ActiveSupport::TaggedLogging.new(logger)
end
config.active_record.dump_schema_after_migration = false
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif *.svg application_split2.css )
# Tested force_ssl with true and false
config.force_ssl = true
config.i18n.fallbacks = true
end
表格的格式化版本
<form novalidate="novalidate" class="simple_form new_user" id="new_user" action="/en/users/login" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓"><input type="hidden" name="authenticity_token" value="R5dzqGlWWGhP5UD6QvR9TEZatNgot8UYtfOwQbQO+Ksv7DEgoVNDL/LSk7cRcZsxUSHnn8T/XQLkDr9B+y0weQ==">
<div class="form-inputs">
<div class="input email optional user_email"><label class="email optional" for="user_email">Email</label><input class="string email optional" autofocus="autofocus" type="email" value="" name="user[email]" id="user_email"></div>
<div class="input password optional user_password"><label class="password optional" for="user_password">Password</label><input class="password optional" type="password" name="user[password]" id="user_password"></div>
<div class="input boolean optional user_remember_me"><input value="0" type="hidden" name="user[remember_me]"><label class="boolean optional checkbox" for="user_remember_me"><input class="boolean optional" type="checkbox" value="1" name="user[remember_me]" id="user_remember_me">Remember me</label></div>
</div>
<div class="form-actions">
<input type="submit" name="commit" value="Log in" class="btn" data-disable-with="Log in">
</div>
</form>
user.rb
class User < ApplicationRecord
#include Clearance::User
extend FriendlyId
friendly_id :slug_candidates, use: :slugged
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :rememberable, :trackable
private
def slug_candidates
[
SecureRandom.hex(4).to_s + "-" + self.email[/[^@]+/]
]
end
end
更新4
有关完整的HTML标记 - 请参阅
这是正在制作的表格。
布局/ devise.html.haml
!!! 5
%html
%head
%meta{:charset => "utf-8"}
%title= title
= csrf_meta_tags
%script{:src => "https://use.fontawesome.com/89c3729707.js"}
%meta{:name => "viewport", :content => "width=device-width, initial-scale=1.0"}
%meta{:name => "viewport", :content => "width=device-width, initial-scale=1, maximum-scale=1"}
%meta{:name => "description", :content => "#{meta_description}"}
/ Le HTML5 shim, for IE6-8 support of HTML elements
/[if lt IE 9]
%script{:src => "http://html5shim.googlecode.com/svn/trunk/html5.js", :type => "text/javascript"}
/ Le styles
= stylesheet_link_tag "application", :media => "all", :"data-turbolinks" => false
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"
= javascript_include_tag "application", :"data-turbolinks" => false
/ Le fav and touch icons
= favicon_link_tag
= render 'layouts/tracking/google_analytics'
%body.home
%div.home_overlay
/= cookie_law!
= render "layouts/navs/navigation_teaser"
= yield
- if params[:action] == "teaser" && !user_signed_in?
= render "layouts/footers/bottom"
更新6
问题是我的nginx配置。有效的方法如下:
server {
listen 80;
server_name win-marketing.sciencesupercrew.com www.win-marketing.sciencesupercrew.com;
return 301 https://www.win-marketing.sciencesupercrew.com$request_uri;
}
server {
listen 443 ssl;
server_name win-marketing.sciencesupercrew.com;
passenger_enabled on;
rails_env production;
root /home/demo/windhagermediahub/public;
ssl on;
ssl_certificate /home/demo/ssl/ssl-bundle.crt;
ssl_certificate_key /home/demo/ssl/ssc.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
添加这些行后,它开始工作:
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
答案 0 :(得分:4)
这听起来像是一个SSL问题。
你的表格肯定会张贴到路线上。您可以通过在浏览器中将data-remote="true"
添加到表单HTML,然后在发出请求时观察控制台来确认这一点:
XHR finished loading: POST "https://win-marketing.sciencesupercrew.com/en/users/login"
但是,当您发布POST时,会立即重定向。如果卷曲路线,你可以看到这个:
$ curl -i -X POST https://win-marketing.sciencesupercrew.com/en/users/login
HTTP/1.1 301 Moved Permanently
Server: nginx/1.10.2
Date: Thu, 23 Feb 2017 14:58:04 GMT
Content-Type: text/html
Content-Length: 185
Location: https://win-marketing.sciencesupercrew.com/en/users/login/
Connection: keep-alive
这里是SSL进入的地方。Rails returns a 301 (moved permanently) error当请求不是SSL时,它应该是:
def force_ssl_redirect(host_or_options = nil)
unless request.ssl?
options = {
:protocol => 'https://',
:host => request.host,
:path => request.fullpath,
:status => :moved_permanently
}
我不确定您是如何在服务器上设置SSL的。例如,您是否在负载均衡器中终止SSL?无论你做什么,似乎SSL都是罪魁祸首。要确认暂时,请尝试:
# config/production.rb
config.force_ssl = false
看看是否能解决它。
答案 1 :(得分:1)
我注意到的第一件事是你有两个GET
,而不是GET
,然后是POST
(正如你自己注意到的那样)。
但是我们假设HTML表单是正确的,因为它在开发中有效。这让我怀疑有一些Javascript正在抛弃。将物流从开发转移到生产时的一个常见问题是资产管道。因此,我会打开浏览器的控制台,刷新页面,看看是否有任何Javascript错误,特别是关于无法加载的文件。
您还应该分享您包含Javascript文件的方式。你能分享你布局的那部分(或其他)吗?我会确保您使用asset_path
和朋友,而不仅仅是/assets/application.js
,因为后者会在您投入生产时中断。更好的是,使用javascript_include_tag
。