【问题标题】:Rails i18n if I use unicorn and nginx as a application server doesnt work如果我使用 unicorn 和 nginx 作为应用程序服务器,Rails i18n 不起作用
【发布时间】:2014-11-12 18:06:35
【问题描述】:


当我使用默认的 WEBrick 服务器运行我的应用程序并从子域设置区域设置时,i18n 可以完美地用于“en”和“ja”。
但是,当我使用 Nginx 和 Unicorn 运行我的应用程序时,i18n 无法像在 WEBrick 中那样工作。

我写下面的代码来设置子域的语言环境;

 def set_locale                                          
    I18n.locale = params[:locale] || I18n.default_locale  
     if request.host.starts_with? "en."                    
      I18n.locale = "en"                                  
     else                                                  
      I18n.locale = "ja"                                  
     end                                                   
 end


我在这里错过了什么?
我对 unicorn 和 nginx 的设置几乎是默认设置,除了我在 nginx.conf 中将应用名称或 proxy_pass 更改为 app。
谁能教我如何让 i18n 工作吗?我整天都在堆栈......
请原谅我糟糕的英语水平...
提前谢谢您。

【问题讨论】:

  • 看看你的application.rb文件,你会发现一些区域设置,比如config.i18n.default_locale = :en

标签: ruby-on-rails internationalization nginx unicorn


【解决方案1】:

尝试将以下行添加到您的 location @app-name { }proxy_pass 配置中的 Nginx 配置中:

proxy_set_header Host $http_host;

如果您的 Nginx 配置中缺少 proxy_pass 设置,Rails 将作为主机发送。

【讨论】:

  • 非常感谢您的回答,现在可以正常使用了!谢谢!
猜你喜欢
  • 2015-08-15
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 1970-01-01
  • 2012-12-19
  • 2015-05-22
  • 2017-01-04
相关资源
最近更新 更多