`
jsntghf
  • 浏览: 2531749 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

随启动环境改变的域名

阅读更多

现在有这样一个需求:本地测试使用development环境,正式产品使用production环境。本地测试的两个项目的域名分别为test.xuexi6.com和test2.xuexi6.com,而正式产品的域名分别为www.xuexi6.com和points.xuexi6.com。

 

我们可以定义常量来表示这两个域名,例如:

 

XUEXI6_URL = "test.xuexi6.com"
POINTS_URL = "test2.xuexi6.com"

 

然后,需要使用这两个地址时,直接用常量就可以了。这样的话,本地测试是没有问题,但是,需要发布正式产品的时候,这两个常量对应的地址就需要改动了,这样做比较麻烦。

 

现在,换种思路来实现同样的功能。

 

我们可以写个配置文件,分别指定本地测试和正式产品,这两个项目的域名,然后根据启动的环境,会自动对应该环境下使用的域名。

 

首先,在config目录下新建一个名为domain_config.yml的配置文件,内容如下:

 

development:
  xuexi6_url: test.xuexi6.com
  points_url: test2.xuexi6.com
 
production:
  xuexi6_url: www.xuexi6.com
  points_url: points.xuexi6.com

 

然后,在config/initializers目录下新建一个名为load_domain_config.rb的文件,内容如下:

 

domain_config = File.read(RAILS_ROOT + "/config/domain_config.yml")
CONFIG = YAML.load(domain_config)[RAILS_ENV].symbolize_keys

 

现在,在需要使用的地方分别使用CONFIG[:xuexi6_url]和CONFIG[:points_url],便能取出当前环境下对应的域名。

 

此时,从development环境切换到production环境时,无需改动任何代码,域名便会切换到该环境使用的域名。

分享到:
评论
1 楼 xu_ch 2010-05-12  

相关推荐

    组件随窗口大小改变

    描述中的“组件随窗口大小改变系统结构:组件随窗口大小改变======窗口程序集1| || |------ __启动窗口_尺寸被改变”可能是在描述一个特定的框架或者程序结构,其中“窗口程序集1”可能是程序的核心部分,而“启动...

    phpStudy v2014 3.10.zip

    系统服务启动:开机就会启动,适合经常使用或做服务器,无需手工启动,服务会随开机而启动,好处程序运行稳定。 非服务启动:需要手动启动一下,适合偶尔经常使用一下。在不使用的情况不会启动相关进程,从而节省...

    phpStudy2013最新版,非安装版,解压即可

    系统服务启动:开机就会启动,适合经常使用或做服务器,无需手工启动,服务会随开机而启动,好处程序运行稳定。 非服务启动:需要手动启动一下,适合偶尔经常使用一下。在不使用的情况不会启动相关进程,从而节省...

    phpStudy 2013.2.20 phpStudy最新版,重写版下载

    系统服务启动:开机就会启动,适合经常使用或做服务器,无需手工启动,服务会随开机而启动,好处程序运行稳定。 非服务启动:需要手动启动一下,适合偶尔经常使用一下。在不使用的情况不会启动相关进程,从而节省...

    phpStudy 2016.10.31 再次更新,支持自定义php版本

    系统服务启动:开机就会启动,适合经常使用或做服务器,无需手工启动,服务会随开机而启动,好处程序运行稳定。 非服务启动:需要手动启动一下,适合偶尔经常使用一下。在不使用的情况不会启动相关进程,从而节省...

    phpstudy-x64.zip

    系统服务启动:开机就会启动,适合经常使用或做服务器,无需手工启动,服务会随开机而启动,好处程序运行稳定。 非服务启动:需要手动启动一下,适合偶尔经常使用一下。在不使用的情况不会启动相关进程,从而节省...

    通过PcAnywhere远程控制动态IP局域网中的计算机.pdf

    7. **动态域名解析(DDNS)**:使用花生壳等DDNS服务,可以将动态IP与固定的域名关联,即使IP改变,也能通过同一域名访问被控端。 8. **花生壳服务**:花生壳的注册、激活和客户端安装,确保了动态IP的解析和远程...

    动态地址和静态地址互相转换.7z

    静态IP地址是固定的,不会随时间或网络连接变化而改变。这种地址通常用于服务器、打印机等需要稳定网络连接的设备,以便外部设备始终能通过同一IP访问。设置静态IP需要手动输入IP地址、子网掩码、默认网关以及DNS...

    2021-2022计算机二级等级考试试题及答案No.15374.docx

    29. **移动图片框**:在编程环境中,移动图片框时,图片框的位置会随鼠标移动而实时改变。 这些知识点涵盖了数据库设计、程序设计语言、操作系统、网络协议、办公软件等多个方面,展示了计算机二级等级考试的综合性...

    大一大学计算机基础教程期末考试题(更新版).doc

    21. **域名与IP地址关系**:域名与IP地址是一一对应的。 22. **数据传输速度单位**:比特率(Bit per second, bps)用来度量数据传输速度。 23. **模拟与数字转换**:调制解调器用于数字信号和模拟信号之间的转换...

    电脑软件显示IP配置.rar

    静态IP则是手动设置,不会随时间改变,通常用于服务器或需要固定IP的设备。 9. **网络适配器**:每台电脑可能有多个网络适配器,包括以太网卡、无线网卡等,每个适配器都有独立的IP配置。 10. **安全考虑**:公开...

    Linux入门之路

    安装完成后,首次启动会进入桌面环境,Ubuntu默认使用Unity,其他发行版可能采用GNOME、KDE等。桌面环境提供了图形化的用户交互界面,包括任务栏、菜单、窗口管理等。 三、Linux终端与命令行 在Linux中,终端是执行...

    Linux指令速查手册

    - **典型用法**:通常不需要用户手动启动,而是随系统启动自动运行。 - **应用场景**:后台处理规划的任务。 ##### 4. 显示规划队由at规划的作业 - `atq` - **功能简介**:`atq` 命令用于查看当前等待执行的`at`...

    计算机一级考试试题(20211009111700).pdf

    24. 公式复制:在Excel中复制公式时,相对地址会随单元格位置改变,而绝对地址保持不变。 25. 二进制与八进制转换:二进制数1100100对应的八进制数是144。 26. Excel文件扩展名:Excel工作簿默认的文件扩展名为....

    ddynns使用安全的http更新您的dyndns帐户设置-开源

    在互联网环境中,动态IP地址常常会给远程访问带来困扰,因为每次网络连接变化时,公网IP可能会随之改变。这时,动态DNS服务就显得尤为重要,它将动态的IP地址与固定的域名绑定,使得用户可以通过稳定的域名访问到...

    iOS程序员面试真题(附答案解析)(3).doc

    解析:在`UITableView`的代理方法`scrollViewDidScroll:`中,可以获取到滚动视图`UIScrollView`的当前偏移量,从而实现导航栏颜色随滑动改变的效果。 2. 要实现不停下雨的功能,哪个功能比较好? 正确答案:C.`...

    开源基础架构和集群最佳实践

    - `# chkconfig iptables off` (禁止Iptables随系统启动) 关闭Iptables非常重要,否则可能导致主备机之间的VRRP通信出现问题。如果未关闭,则可能发现两边均为MASTER状态且都能绑定浮动IP。 #### 二、keepalived ...

    华为linux入门内部资料

    ### 华为Linux入门内部资料知识点总结 #### 第1章:命令行操作及常用命令使用 ##### 1.1 命令行操作 **1.1.1 Shell简介** ...- **自动运行**: 配置服务随系统启动而自动启动。 - **状态**: 查看服务的运行状态。

    精通Windows.API-函数、接口、编程实例.pdf

    10.3.5 设置随程序启动而启动的调试器(任何程序) 294 10.3.6 指定程序崩溃实时调试器 294 第11章 进程间通信 295 11.1 邮槽(MailSlot) 295 11.1.1 创建邮槽、从邮槽中读取消息 296 11.1.2 通过邮槽发送...

    网管教程 从入门到精通软件篇.txt

    CIN:OS/2改变控制文件用于跟踪INI文件中的变化 CLASS:Java类文件 CLP:Windows 剪贴板文件 CLL:Crick Software Clicker文件 CLS:Visual Basic类文件 CMD:Windows NT,OS/2的命令文件;DOS CD/M命令文件;...

Global site tag (gtag.js) - Google Analytics