Skip to content

magento2中的三种开发模式

7天成为Magento系统架构师,现在开始学习Magento全栈开发!

《Magento2.X企业级开发实战》

M2有3种模式,

  1. 默认模式(default)
  2. 开发模式(developer)
  3. 生产模式(production)

默认模式

安装完成后,就是默认模式。
它跟生产模式差不多.
最大的不同是,
默认模式可以在后台清缓存,生产模式不能。
它带有一点灵活性。

  1. 错误不显示在页面上,错误记录到项目的var/report里
  2. 开启静态缓存文件,也就是说读取的静态缓存文件,在pub/static里
  3. 默认模式未针对生产环境进行优化,主要原因是静态文件是动态生成(先创建静态文件再缓存)。而生产模式是用命令行工具生成的静态文件,不是动态生成。所以默认模式的性能没有生产模式好。
  4. 可以在后台开启/禁用/刷新缓存

开发模式

顾名思义,就是开发测试用的。

  1. 错误直接显示在页面上
  2. 关闭静态缓存文件,每次页面刷新都动态生成静态文件到pub/static里
  3. 可以在后台开启/禁用/刷新缓存
  4. 可以在后台设置浏览器编译less

生产模式

线上站点都必须改成生产模式。

  1. 错误不显示在页面上,错误记录在项目的var/report里
  2. 开启静态缓存文件,每次只从pub/static目录读取缓存文件,如果没有的话 就报错了。错误要在var/report里看。
  3. 不能在后台开启/禁用/刷新缓存。
  4. 要用命令行工具来生成静态文件,生成在pub/static目录下
    也就是说,生产模式为了加速,提高效率,一律只读取pub/static下的静态缓存文件。任何人都干扰不了它。

总结

说白了,默认模式就是个鸡肋,食之无用,弃之可惜。

我们只需要开发模式和生产模式就行。

也就是说我们:

在开发模式下开发测试。
在生产模式下部署上线。

开发模式下这样设置
//bbs.mallol.cn/?thread-148.htm

因为默认模式和生产模式都强制性的读取pub/static下的静态缓存文件,所以就比较复杂了,每次修改内容都要清缓存并且重新生成静态文件才生效。
默认模式和生产模式要类似这样操作:

php bin/magento maintenance:enable && git pull origin master
rm -rf var/di/* && rm -rf var/generation/* && rm -rf var/cache/* && rm -rf var/page_cache/* && rm -rf var/view_preprocessed/* && rm -rf pub/static/* && rm -rf generated/* && mkdir var/di
php bin/magento setup:upgrade && php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f && php bin/magento indexer:reindex && php bin/magento maintenance:disable && php bin/magento cache:clean && php bin/magento cache:flush

说白了,就是
#1,开启维护模式,如果有用git版本控制代码的话,就pull最新代码下来。
#2,删除静态文件和一系列缓存文件
#3,更新数据库以及代码编译
#4, deploy生成静态文件到pub/static里,供m2读取。
#5,更新索引,关闭维护模式,以及清空刷新magento缓存。

这个我就不细说了,在后面的Magento2线上部署 章节里会详细说到。

他这个pub/static下的静态文件都来源于插件和主题下的web目录下的文件,都是网站运行过程中需要调用的js/css/images/字体等等。

一定要搞清楚你目前的m2项目是处于哪个模式。要对症下药。
不然总是遇到无样式或者页面空白的情况,一脸懵逼。

用这个命令查看当前模式

php bin/magento deploy:mode:show

一句话

开发模式不用管pub/static下的静态缓存文件,也不需要deploy什么的。
生产模式一定要管pub/static下的静态缓存文件,要先删除静态文件清缓存后再deploy生成静态文件,刷新缓存,不然就会出问题。

注意:
不是说开发模式下就不用管缓存了,我这里说的是不需用deploy生成静态文件,缓存还是要清的。

如果你按照
http://bbs.mallol.cn/?thread-148.htm
这里设置的话,就不需要清后台缓存,因为后台缓存被禁用了。
但是还是需要清浏览器缓存的。

还需要rm generated/* -rf,因为如果你有修改过php的构造函数function __construct()里的代码 就需要清下generated/下的代码缓存,不然会报错 说找不到这个类 等奇怪的错误。

什么是Magento缓存呢?

这里就是所谓的magento缓存。
缓存在var/下面。
比如var/generation/,var/di/,var/cache/,var/page_cache,var/view_preprocessed
这几个目录都是magento缓存。

不要跟deploy的静态文件搞混淆了,不是同一个东西。
因为deploy的静态文件在pub/static下面。

因为现在的浏览器缓存也很严重,特别是css/js,要强制刷新才会更新。
所以你修改js/css后 一定要清浏览器缓存,才会看到最新的效果

开发模式/生产模式 任意切换

切换到生产模式

php bin/magento deploy:mode:set production

切换到生产模式后,需要删除缓存文件并deploy下。

切换到开发模式

php bin/magento deploy:mode:set developer

切换到开发模式后,还需要再设置下:
http://bbs.mallol.cn/?thread-148.htm

如果有无样式或其他报错的话,先尝试执行更新系统的操作:

php bin/magento maintenance:enable 

rm -rf var/di/* && rm -rf var/generation/* && rm -rf var/cache/* && rm -rf var/page_cache/* && rm -rf var/view_preprocessed/* && rm -rf pub/static/* && rm -rf generated/* && mkdir var/di

php bin/magento setup:upgrade && php bin/magento setup:di:compile

php bin/magento setup:static-content:deploy -f && php bin/magento indexer:reindex && php bin/magento maintenance:disable && php bin/magento cache:clean && php bin/magento cache:flush

关于服务器配置问题

因为m2分开发模式和生产模式,因为开发模式非常耗资源,所以服务器配置按需配置:

  1. 开发和线上版本都在同一个服务器,配置至少是4核8G
  2. 服务器只放线上版本,配置至少是2核4G
  3. 服务器只放开发版本,配置至少是2核8G
如无特殊说明或标注,任何个人或组织,复制、转载、采集本站内容请注明:
本文来源于:【Magento中文网】,并添加本文地址链接。
如未按上述操作复制或转载,本站有权追究法律责任。
若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
#magento
上一篇: magento2中的xml文件配置示例
下一篇: magento2系统配置中添加日期选择

相关文章

  • magento2创建促销活动,添加优惠券
  • magento2如何开启性能管理配置
  • 升级到Magento1.9.3 产品页出现脚本错误 Product.OptionsPrice is not a constructor 解决办法
  • Magento 1x 后台开发笔记
  • magento2编程最佳实践之观察者

深圳SEO优化公司大运网站优化推广大鹏百度网站优化广州网站制作大芬关键词排名包年推广深圳品牌网站设计深圳百度竞价松岗网站优化排名永湖外贸网站设计坪地网络推广大浪关键词排名丹竹头关键词按天收费丹竹头网站seo优化木棉湾外贸网站建设同乐百姓网标王龙岗网站建设设计坪山网站优化推广木棉湾网站排名优化平湖网站制作南澳品牌网站设计宝安百姓网标王双龙建站东莞建站坑梓关键词按天计费丹竹头网站建设设计南联百姓网标王推广南联模板制作永湖模板网站建设爱联百度关键词包年推广塘坑百度竞价包年推广宝安百度竞价包年推广歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化