Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
7d8e6219
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7d8e6219
编写于
1月 17, 2018
作者:
R
Ryan Lue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Clarify language in Asset Pipeline Guide
上级
51c5bcbb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
33 addition
and
28 deletion
+33
-28
guides/source/asset_pipeline.md
guides/source/asset_pipeline.md
+33
-28
未找到文件。
guides/source/asset_pipeline.md
浏览文件 @
7d8e6219
...
...
@@ -791,39 +791,44 @@ location ~ ^/assets/ {
### Local Precompilation
There are several reasons why you might want to precompile your assets locally.
Among them are:
Sometimes, you may not want or be able to compile assets on the production
server. For instance, you may have limited write access to your production
filesystem, or you may plan to deploy frequently without making any changes to
your assets.
*
You may not have write access to your production file system.
*
You may be deploying to more than one server, and want to avoid
duplication of work.
*
You may be doing frequent deploys that do not include asset changes
.
In such cases, you can precompile assets _locally_ — that is, add a finalized
set of compiled, production-ready assets to your source code repository before
pushing to production. This way, they do not need to be precompiled separately
on the production server upon each deployment
.
Local compilation allows you to commit the compiled files into source control,
and deploy as normal.
As above, you can perform this step using
There are three caveats:
```
bash
$ RAILS_ENV
=
production rails assets:precompile
```
*
You must not run the Capistrano deployment task that precompiles assets.
*
You must ensure any necessary compressors or minifiers are
available on your development system.
*
You must change the following application configuration setting:
Note the following caveats:
In
`config/environments/development.rb`
, place the following line:
*
If precompiled assets are available, they will be served — even if they no
longer match the original (uncompiled) assets, _even on the development
server._
```
ruby
config
.
assets
.
prefix
=
"/dev-assets"
```
To ensure that the development server always compiles assets on-the-fly (and
thus always reflects the most recent state of the code), the development
environment _must be configured to keep precompiled assets in a different
location than production does._ Otherwise, any assets precompiled for use in
production will clobber requests for them in development (_i.e.,_ subsequent
changes you make to assets will not be reflected in the browser).
The
`prefix`
change makes Sprockets use a different URL for serving assets in
development mode, and pass all requests to Sprockets. The prefix is still set to
`/assets`
in the production environment. Without this change, the application
would serve the precompiled assets from
`/assets`
in development, and you would
not see any local changes until you compile assets again.
You can do this by adding the following line to
`config/environments/development.rb`
:
In practice, this will allow you to precompile locally, have those files in your
working tree, and commit those files to source control when needed. Development
mode will work as expected.
```
ruby
config
.
assets
.
prefix
=
"/dev-assets"
```
*
Do not run the Capistrano deployment task that precompiles assets.
*
Any necessary compressors or minifiers must be available on your development
system.
### Live Compilation
...
...
@@ -836,9 +841,9 @@ To enable this option set:
config
.
assets
.
compile
=
true
```
On the first request the assets are compiled and cached as outlined in
development above, and the manifest names used in the helpers are altered to
include the SHA256 hash.
On the first request the assets are compiled and cached as outlined in
[
Assets
Cache Store
](
#assets-cache-store
)
, and the manifest names used in the helpers
are altered to
include the SHA256 hash.
Sprockets also sets the
`Cache-Control`
HTTP header to
`max-age=31536000`
. This
signals all caches between your server and the client browser that this content
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录