ruby-on-rails – Rails 4:根据环境使用不同的服务器端口
发布时间:2020-12-17 02:39:42 所属栏目:百科 来源:网络整理
导读:我正在尝试自动配置我的rails应用程序,我希望能够在不指定端口的情况下启动应用程序,因为我希望根据环境选择它. 具体而言(开始时很简单)如果环境是生产则在端口3000上运行应用程序,否则在端口3500上运行. 所以,按照这个答案,我在boot.rb文件中添加了以下内容
我正在尝试自动配置我的rails应用程序,我希望能够在不指定端口的情况下启动应用程序,因为我希望根据环境选择它.
具体而言(开始时很简单)如果环境是生产则在端口3000上运行应用程序,否则在端口3500上运行. 所以,按照这个答案,我在boot.rb文件中添加了以下内容: require 'rails/commands/server' module DefaultOptions def default_options super.merge!(Port: Rails.env.production? ? 3000 : 3500) end end Rails::Server.send(:prepend,DefaultOptions) 不幸的是我做错了,因为这是我运行rails时的输出: /home/luca/projects/ads_manager/config/boot.rb:10:in `default_options': undefined method `env' for Rails:Module (NoMethodError) from /usr/local/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:287:in `parse_options' from /usr/local/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:184:in `options' from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/server.rb:58:in `set_environment' from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/server.rb:42:in `initialize' from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `new' from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `<top (required)>' from bin/rails:4:in `require' from bin/rails:4:in `<main>' 知道为什么Rails.env不可用吗? 获得相同结果的替代方案确实非常受欢迎. 解决方法
如果您使用的是* NIX系统,则可以尝试以下操作
在终端中运行以下命令 export RAILS_ENV =生产 注意:这会将环境暂时设置为生产环境,如果您需要永久保存,请将其添加到.bashrc文件中 然后启动您的应用程序服务器. 在boot.rb文件中,使用ENV [‘RAILS_ENV’]而不是Rails.env 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |