Rails的静态资源管理(三)—— 开发环境的Asset Pipelin
2017-06-20 10:44
351 查看
官方文档:http://guides.ruby-china.org/asset_pipeline.html
http://guides.rubyonrails.org/asset_pipeline.html
在开发环境中,Asset Pipeline 会按照清单文件中指定的顺序处理静态资源文件。
对于清单文件
会生成下面的 HTML:
其中
当此选项设置为
如果启用了“静态资源后备机制”,找不到静态资源时,输出路径,而不抛出错误。静态资源后备机制默认启用。
当此选项设置为
当调试模式关闭时,Sprockets 会对所有文件进行必要的预处理,然后把它们连接起来。此时,前文的清单文件会生成下面的 HTML:
当服务器启动后,静态资源文件将在第一次请求时进行编译和缓存。Sprockets 通过设置
如果清单文件中的某个文件在两次请求之间发生了变化,服务器会使用新编译的文件作为响应。
还可以通过 Rails 辅助方法启用调试模式:
当然,如果已经启用了调式模式,再使用
在开发模式中,我们也可以启用压缩功能以检查其工作是否正常,在需要进行调试时再禁用压缩功能。
http://guides.rubyonrails.org/asset_pipeline.html
在开发环境中,Asset Pipeline 会按照清单文件中指定的顺序处理静态资源文件。
对于清单文件
app/assets/javascripts/application.js:
//= require core //= require projects //= require tickets
会生成下面的 HTML:
<script src="/assets/core.js?body=1"></script> <script src="/assets/projects.js?body=1"></script> <script src="/assets/tickets.js?body=1"></script>
其中
body参数是使用 Sprockets 时必须使用的参数。
1 检查运行时错误
在生产环境中,Asset Pipeline 默认会在运行时检查潜在错误。要想禁用此行为,可以设置:config.assets.raise_runtime_errors = false
当此选项设置为
true时,Asset Pipeline 会检查应用中加载的所有静态资源文件是否都已包含在
config.assets.precompile列表中。如果此时
config.assets.digest也设置为
true,Asset Pipeline 会要求所有对静态资源文件的请求都包含指纹(digest)。
2 找不到静态资源时抛出错误
如果使用的 sprockets-rails 是 3.2.0 或以上版本,可以配置找不到静态资源时的行为。如果禁用了“静态资源后备机制”,找不到静态资源时抛出错误。config.assets.unknown_asset_fallback = false
如果启用了“静态资源后备机制”,找不到静态资源时,输出路径,而不抛出错误。静态资源后备机制默认启用。
3 关闭指纹
通过修改config/environments/development.rb配置文件,我们可以关闭指纹:
config.assets.digest = false
当此选项设置为
true时,Rails 会为静态资源文件的 URL 生成指纹。
4 关闭调试
通过修改config/environments/development.rb配置文件,我们可以关闭调式模式:
config.assets.debug = false
当调试模式关闭时,Sprockets 会对所有文件进行必要的预处理,然后把它们连接起来。此时,前文的清单文件会生成下面的 HTML:
<script src="/assets/application.js"></script>
当服务器启动后,静态资源文件将在第一次请求时进行编译和缓存。Sprockets 通过设置
must-revalidate Cache-ControlHTTP 首部,来减少后续请求造成的开销,此时对于后续请求浏览器会得到 304(未修改)响应。
如果清单文件中的某个文件在两次请求之间发生了变化,服务器会使用新编译的文件作为响应。
还可以通过 Rails 辅助方法启用调试模式:
<%= stylesheet_link_tag "application", debug: true %> <%= javascript_include_tag "application", debug: true %>
当然,如果已经启用了调式模式,再使用
:debug选项就完全是多余的了。
在开发模式中,我们也可以启用压缩功能以检查其工作是否正常,在需要进行调试时再禁用压缩功能。
相关文章推荐
- 使用Asset Pipeline管理rails生产环境静态资源实现步骤
- Rails的静态资源管理(四)—— 生产环境的 Asset Pipeline
- Rails的静态资源管理(六)—— Asset Pipeline缓存存储方式、预处理、升级等
- Feekood开发环境介绍(2)-- 资源管理界面(转)
- Rails的静态资源管理(二)—— 如何使用 Asset Pipeline
- Rails的静态资源管理(一)——Asset Pipeline是什么
- 利用 webpack 处理开发与线上环境静态资源切换问题
- Feekood开发环境介绍(2)-- 资源管理界面
- Rails的静态资源管理(五)—— 自定义 Asset Pipeline
- VC.net 开发环境介绍系列二(资源部分)
- 使用 XForms 和 Ruby on Rails 开发小型门诊管理系统,第 1 部分: 安装配置 IBM DB2 9 pureXML
- 采用ruby on rails语言开发的开源项目管理工具redmine
- Windows下ruby on rails开发环境的搭建
- 手动配置Ruby On Rails开发环境
- Ruby on Rails的开发环境配置
- Redmine - 用rails开发的项目管理系统
- 搭建Ruby on Rails开发环境
- 搭建ruby on rails开发环境
- 搭建Ruby on Rails开发环境
- 在Mac OS X上建立Ruby on Rails开发环境