代码之家  ›  专栏  ›  技术社区  ›  rmagnum2002

环境变量在rails控制台中可用,但在应用程序中不可用

  •  1
  • rmagnum2002  · 技术社区  · 11 年前

    我从零开始设置的vps以前从未遇到过这样的问题,这个vps(Ubuntu 12.04,64位)是由其他开发人员安装的。

    这个问题

    在里面 .bashrc 我拥有的文件:

    export FACEBOOK_ID=123456789
    export FACEBOOK_SECRET=987654321
    

    现在在终端,如果我键入 env 我看到了这些变量。 如果我打开 rails console 和类型 ENV["FACEBOOK_ID"] ENV["FACEBOOK_SECRET"] 我也能看到合适的值。

    问题是我必须使用 FACEBOOK_ID 在应用程序中的一个视图文件中,我使用:

    <%= ENV["FACEBOOK_ID"] %>

    在本地机器上,它返回正确的值,在vps上的生产中,它不返回任何值。 我的想法是vps设置不正确,我在上面找不到apache或ngnix,应用程序在 var/www/apps/app_name/ .

    可能出了什么问题?如何在模板中获取此env变量?

    使现代化

    根目录中可用的文件:

    .bash_profile .bashrc .cshrc .zprofile .zshrc
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   Billy Chan    11 年前

    不要把它放在当地环境中。部署应用程序时要做什么?当你想在本地机器上开发另一个也使用Facebook id的应用程序时,该怎么办?

    使用费加罗宝石。它是为处理此类情况、环境变量和私有数据而构建的。env变量可以在应用程序的YAML文件中设置,不会提交给repo。你不会后悔的。