Rails 配置文件详解

2019/03/27 16:52
阅读数 504

配置文件(config目录)

数据库配置文件 (database.yml)

数据库配置文件,用于描述Rails使用的数据库的配置,采用YAML的格式进行编写;支持开发(development)、测试(test)和生产(production)三种环境的配置编写。

支持的数据库:

  • DB2
  • Firebird
  • Frontbase
  • MySQL
  • Openbase
  • Oracle
  • PostgreSQL
  • SQLite
  • SQL Server
  • Sybase

示例: SQLite 3 Setting items

Setting items Description Default
adapter Type of database to connect sqlite3
database Path to database file db / environment-name.sqlite3
pool Boolean number of connections Five
timeout Timeout time 5000
##database.yml
development:
  adapter: sqlite3
  database: db/development.sqlite3
  timeout: 5000

test:
  adapter: sqlite3
  database: db/test.sqlite3
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  timeout: 5000

应用的设置文件(config/*)

在config目录下的为Rails应用的设置文件,可以通过"config.parameter name = value"的格式来改变应用的配置,但是每次发生修改后需要重启服务以使配置生效,底下文件统一采用UTF-8的编码。

主要设置文件

application.rb 设置所有环境通用的配置
environment / 该目录下存在各个环境各自的环境设置文件
development.rb 开发环境设置
test.rb 测试环境设置
production.rb 生产环境设置
initializers / 该目录下存在各种初始化文件和设置信息
infiections.rb 文本单复数变化规则设置
mime_types.rb 应用内容类型设置
secret_token.rb 签名和cookie令牌信息设置
session_store.rb session保存相关设置
locales / 存储国际化资源文件

添加自动加载的路径

例如:添加config/lilb为自动加载

config.autoload_paths += %W(#{config.root}/lib)

设置应用中的通用变量

设置

## 在config/application.rb中设置
module Example
  class Application < Rails::Application
    config.site = "https://google.com"

引用

Example::Application.config.site

设置初始化后执行的内容

根据设置的文件不同,可以在不同的环境中起效。

config.after_initialize do
 ## TODO
 ## ....
end

例如:

config.after_initialize do
  ActionView::Base.sanitized_allowed_tags.delete 'div'
end

设置启动时加载的内容

config.autoload_once_path += %W(#{config.root}/lib)]

设置是否每次访问都重新加载应用类

该设置对开发环境友好,当值为true时每次修改代码无需重新启动服务就可以应用修改的代码

# Do not reload

cache_classes = true
# Reload

cache_classes = false

默认设置:

environment Configuration
development cache_classes = false
test cache_classes = false
production cache_classes = true

设置是否缓存渲染的模板

config.action_view.cache_template_loading = ( true | false )

缓存的存储设置

config.cache_store = "Cache type"

常用存储类型: : memory_store 内存存储 : file_store 文件存储 : mem_cache_store 内存缓存存储 : null_store 空

设置是否在浏览器显示错误信息

config.consider_all_requests_local = ( true | false )

设置默认交互控制台

example

console do
  # this block is called only when running console,
  # so we can safely require pry here
  require "pry"
  config.console = Pry
end

设置是否自动加载配置文件

config.dependency_loading = ( true | false )

PS: 该设置仅当config.cache_classes = true时有效

设置eager_load

config.eager_load = ( true | false )

rails中,application, 各engine, 或者是namespace,如果需要在初始化时,就去加载和自己相关的文件,也就是执行eager_load!, 需要将自己的namespace注册到eager_load_namespaces中,且必须config.eager_load是true。application在初始化时,会去运行各种Railtie#initializer。

设置eager_load使用的namespace

config.eager_load_namespaces << SimpleForm

解释可参考以上,该选项仅当config.eager_load = true时有效

设置eager_load加载路径

config.eager_load_paths += %W( #{RAILS_ROOT}/app/workers )

设置应用所使用的编码

默认编码为UTF-8

config.encoding = "utf-8"

设置异常处理程序

发生异常时,设置从ShowException中间件调用的异常处理应用程序。 默认设置是 "ActionDispatch :: PublicExceptions.new (Rails.public_path)"

config.exceptions_app = self.handler

设置文件变更检测

config.file_watcher = ( true | false )

日志文件的参数过滤

例如log 文件中过滤掉password参数

config.filter_parameters += [:password]

强制使用https协议设置

config.force_ssl = ( true | false )

日志等级设置

config.log_level = ( :debug | :info | :error | :fatal )

默认设置

environment Configuration
development log_leval =: debug
test log_leval =: debug
production log_leval =: info

配置标记的log输出

config.log_tags = [:uuid, :remote_ip]

设置 logger 对象

logger的文件个数,大小设置

config.logger = Logger.new(config.log_path, 10, 10.megabytes)

禁用logger

config.logger =nil

设置应用中间件

config.middleware

文件变更时重载类

配置文件更改检测。 如果依赖文件发生更改,它将重新加载该类。 如果config.cache_classes为“true”,则忽略

config.reload_classes_only_on_change = ( true | false )

密钥设置

config.secret_key_base = 'myapp1234'

配置静态文件资源

config.serve_static_assets = ( true | false )

优化log输出显示

config.colorize_logging = (true or false)

config.active_record.colorize_logging = false

Session存储设置

config.session_store :cookie_store, :key => '_your_app_session'

时区设置

config.time_zone = 'Beijing'

未初始化的对象警告设置

调用未初始化的对象时显示警告。默认情况下,它对开发环境和测试环境有效。

config.whiny_nils = ( true | false )

设置asset pipeline

config.assets.enabled = ( true | false )

静态资源压缩设置

config.assets.compress = ( true | false )

CSS 编译器设置

默认"sass-rails"

config.assets.css_compressor = :yui

JavaScript 编译器设置

config.assets.js_compressor = :uglifier

静态资源路径设置

config.assets.paths << Rails.root.join("app", "assets", "flash")

静态资源文件的预编译设置

config.assets.precompile += ['admin.js', 'admin.css', 'swfObject.js']

静态资源prefix设置

config.assets.prefix = "/some_other_path"

是否使用静态资源的MD5指纹校验

config.assets.digest = ( true | false )

资源缓存存储设置

config.assets.cache_store = [ :file_store, "/tmp/rails-cache/assets/#{Rails.env}/" ]

资源文件自动查找编译设置

在“true”的情况下,当在public/assets中找不到必要的文件时,从app/assets等搜索文件并执行编译

config.assets.compile = ( true | false )

默认i18n路径及语言设置

i18n.default_locale = :en

config.i18n.load_path += Dir[Rails.root.join('config/locales/xx/*.yml').to_s]

active_record单复数转换设置

config.active_record.pluralize_table_names = ( true | false )

数据库时区设置

config.active_record.default_timezone = ( :local | :utc )

更改数据库架构输出的格式

config.active_record.schema_format = (:ruby | :sql)

是否启用controller的缓存

config.action_controller.perform_caching = ( true | false )

Hash HTML默认头部设置

config.action_dispatch.default_headers = {
  'X-Frame-Options' => 'SAMEORIGIN',
  'X-XSS-Protection' => '1; mode=block',
  'X-Content-Type-Options' => 'nosniff'
}
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部
返回顶部
顶部