如何根据工作环境更改JS,CSS和MySQL数据库?

时间:2014-11-21 04:10:27

标签: ruby heroku sinatra development-environment production-environment

在Heroku中,如何更改我的Sinatra应用程序访问的数据库,具体取决于其环境?

那就是:如果main.rb在我的本地计算机上,如何让它访问localhost,但是当我git push到我的Heroku仓库中的任何分支时,请获取它访问实时数据库?

JS和CSS相同。如果我在本地计算机上工作,我如何设置我的应用程序以便它在dev/js/script.js中访问JS,但是在实时它将访问live/js/script.js

2 个答案:

答案 0 :(得分:1)

通常你不应该为js和css的不同环境设置单独的文件夹,它们应该放在assets文件夹下: 如果您有充分的理由这样做,可以使用以下代码:

set :root, File.expand_path(File.dirname(__FILE__))

configure :development do   
  set :public_folder, Proc.new { "#{root}/dev/assets" }
end

configure :production do 
  set :public_folder, Proc.new { "#{root}/live/assets" }
end

然后在视图中,如果您将javascripts放在assets / javascript下,您可以使用路径javascripts/filename.js

链接到它们

答案 1 :(得分:1)

首先,根据您运行的环境,通常不应该有单独的资产。当你需要更新时,这可以给你一个小噩梦。

这通常在Ruby中的作用是服务器(Heroku等)在运行你的应用程序时设置全局environment variables。这些变量&您的应用中可以使用这些值,以便检查您是否在生产,测试等方面运行。

Heroku自动设置DATABASE_URL环境变量,您可以这样访问它:

configure do
    ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'])  
end

在每台服务器上,相应地设置DATABASE_URL变量。