Magento 2 缓存概览
Magento 2 缓存概览
PS:如需转载,请留言,转载后请说明出处,否则虽繁必究!!!
翻译:https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/cache_for_frontdevs.html
缓存是提高网站性能最高效的方式之一。总的来说,缓存内容有两种方式:
-
客户端(浏览器)服务器端
当有人访问你的网站时,在同一个客户端,从之前的请求中读取已经缓存的内容,而不是每次从服务器请求这些文件,这可以高效利用带宽。
Magento 页面缓存库包括一个简单的 PHP 反向代理,可以实现开箱即用的完整页面缓存。反向代理在访问者和你的应用之间充当了中间人的角色,可以减少服务器负荷。
虽然建议使用 Varnish,但是更应该使用 Magento 默认的缓存机制,这可以存储下面所有的缓存文件:
- 文件系统(什么都不用做就能使用基于文件的缓存)
- 数据库
- Redis
可缓存页面和不可缓存页面
可缓存和不可缓存是区别一个页面到底应不应该被缓存的术语(默认所有页面都是可缓存的)。在一个布局文件(layout)中如果有任何一个 block 被指定为不可缓存,那么这整个页面都是不可缓存的。
如果想让这个页面不可缓存,可以给任何一个 block 指定 cacheable="false"。
不可缓存页面包括产品比较页面、购物车页面和下单页面等等。举例
注意:不要把内容页面(例如:产品列表页,产品详情页和CMS页面)配置成不可缓存的,这样做会在性能上起反作用。
公有内容和私有内容
反向代理服务于“公有”或者分享的内容给多个用户。然而,大多数的 Magento 网站需要给用户生成动态和个人的私有内容,这就是缓存机制唯一的挑战。为了处理这些问题,Magneto 可以对这两个类型的内容加以区别:
- 公有 —— 公有内容储存在服务器端的反向代理缓存储中(比如,文件系统,数据库,Redis,或者 Varnish),可以被多个用户访问到。公有内容的代表举例:头部,尾部,和产品列表。
- 私有 —— 私有内容被存储在客户端(比如,浏览器),是特定的用户个人所有的。私有内容举例:心愿单、购物车、用户名字和地址。你应该限制存储的私有内容占页面总内容中一个很小的部分。
缓存类型
以下缓存类型大多数对前端开发有影响:
缓存类型
|
Code
|
描述
|
布局
|
layout
|
编译之后的页面布局(是指,来自所有布局文件编译之后的布局)。在改变布局文件之后需要清除或者刷新这个类型的缓存。
|
block HTML 输出
|
block_html
|
HTML 页面可以看作由每个 block 组成。在改变视图层之后需要清除或者刷新这个类型的缓存。
|
页面缓存
|
full_page
|
生成的 HTML 页面。如果需要,Magento 自动清除这个类型的缓存,但是第三方开发人员可以在这个缓存任何地方放置任何数据。在修改影响 HTML 输出的代码后,需要清除这部分缓存。建议使用此缓存,因为缓存 HTML 可以显著的提升性能。
|
翻译
|
translate
|
合并了所有模块的翻译文件
|
清除缓存
清除缓存,执行:
magento cache:clean <type> ... <type
查看缓存状态,执行:
bin/magento cache:status
更多关于缓存的操作,查看这里
清除静态文件缓存
你可以按照一下方法清除生成的静态文件:
- 1. 在 Magneto 后台,去到 System > Tools > Cache management,点击 Flush Static Files Cache.
- 这个方法只能在 developer 模式下执行。参考更多静态文件信息。
- 2. 手动清除目录 pub/static 和 var/view_preprocessed 以及子目录,除了目录 pub/static/.htaccess。
- 清除目录 pub/static 下除了 .htaccess(是个隐藏文件) 的所有文件,输入以下命令:
- rm -R pub/static/*
- 3. 几个命令支持参数(不是必填的) --clear--static-content,用来清除生成的静态文件:
清除静态文件
除了被缓存的文件,在主题开发过程中,开发人员也需要处理其他已保存的文件 —— 被预处理并且相应地发布到目录 var/view_preprocessed 和 pub/static 下的静态文件。在大多数情况下,使用一个自定义主题,没有必要清除缓存,比如你只是修改样式,但是需要清除之前的预处理和发布的静态文件。清除静态文件,执行 grunt clean <theme> 或者手动清除目录 pub/static 和 var/view_preprocessed.
PS:如需转载,请留言,转载后请说明出处,否则虽繁必究!!!
最后于 10小时前 被前端小威编辑 ,原因: