Magento 2 缓存概览

超级版主组 前端小威 11月前 438

PS:如需转载,请留言,转载后请说明出处,否则虽繁必究!!!


翻译:https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/cache_for_frontdevs.html


缓存是提高网站性能最高效的方式之一。总的来说,缓存内容有两种方式:

  1. 客户端(浏览器)
    服务器端
当有人访问你的网站时,在同一个客户端,从之前的请求中读取已经缓存的内容,而不是每次从服务器请求这些文件,这可以高效利用带宽。

Magento 页面缓存库包括一个简单的 PHP 反向代理,可以实现开箱即用的完整页面缓存。反向代理在访问者和你的应用之间充当了中间人的角色,可以减少服务器负荷。
虽然建议使用 Varnish,但是更应该使用 Magento 默认的缓存机制,这可以存储下面所有的缓存文件:
  1. 文件系统(什么都不用做就能使用基于文件的缓存)
  2. 数据库
  3. 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. 1. 在 Magneto 后台,去到 System > Tools > Cache management,点击 Flush Static Files Cache.
  2. 这个方法只能在 developer 模式下执行。参考更多静态文件信息。
  3. 2. 手动清除目录 pub/static 和 var/view_preprocessed 以及子目录,除了目录 pub/static/.htaccess。
  4. 清除目录 pub/static 下除了 .htaccess(是个隐藏文件) 的所有文件,输入以下命令:
  5. rm -R pub/static/*
  6. 3. 几个命令支持参数(不是必填的) --clear--static-content,用来清除生成的静态文件:

清除静态文件

除了被缓存的文件,在主题开发过程中,开发人员也需要处理其他已保存的文件 —— 被预处理并且相应地发布到目录 var/view_preprocessed 和 pub/static 下的静态文件。在大多数情况下,使用一个自定义主题,没有必要清除缓存,比如你只是修改样式,但是需要清除之前的预处理和发布的静态文件。清除静态文件,执行 grunt clean <theme> 或者手动清除目录 pub/static 和 var/view_preprocessed.


PS:如需转载,请留言,转载后请说明出处,否则虽繁必究!!!

最后于 10小时前 被前端小威编辑 ,原因:
最新回复 (0)
返回
发帖