只是为了阐明这三种不同的模式(来源:Magento U基础课程)。粗体字表示与您的问题有关的特定要点。
开发者模式
- 未启用静态文件实现。
- 浏览器中显示的未捕获异常
- 在错误处理程序中引发的异常,未记录
- 系统登录
var/report
,非常详细。
在开发自定义或扩展时,应使用开发人员模式。此模式的主要好处是您可以看到错误消息。由于它会影响性能,因此不应在生产中使用。在开发人员模式下,每次请求时都会生成静态视图文件。它们被写入pub/static
目录,但是不使用该缓存。这会对性能产生很大影响,但是开发人员对查看文件所做的任何更改都将立即可见。
未捕获的异常在浏览器中显示,而不是被记录。每当无法调用事件订阅者时,都会引发异常。
var/report
在这种模式下,系统登录非常详细。
生产方式
- 在生产系统上的部署阶段;最高性能
- 不会向用户显示异常-仅写入日志。
- 此模式禁用静态文件实现。
- Magento docroot可以具有只读权限。
将Magento部署到生产服务器后,应在生产模式下运行它。
生产模式在Magento 2中提供了最高的性能。
此模式最重要的方面是错误已记录到文件系统,并且永远不会显示给用户。在这种模式下,静态视图文件在请求时不会即时创建。而是必须pub/static
使用命令行工具将它们部署到目录中。生成的页面将包含指向已部署页面资源的直接链接。
查看文件的任何更改都需要再次运行部署工具。
由于视图文件是使用CLI工具部署的,因此Web用户确实需要具有写访问权限。Magento pub/static
目录可以具有只读权限,这是可公开访问的服务器上更安全的设置。
默认模式
- 未指定其他模式时使用
- 对用户隐藏异常并将其写入日志文件
- 启用了静态文件实现。
- 不建议/未针对生产进行优化:缓存会对性能产生负面影响。
顾名思义,如果未指定其他模式,默认模式就是Magento软件的运行方式。
在这种模式下,错误会记录到文件中var/reports
,并且永远不会显示给用户。静态视图文件会立即实现,然后进行缓存。
与开发人员模式相比,在清除生成的静态视图文件之前,看不到视图文件的更改。
默认模式未针对生产环境进行优化,这主要是因为静态文件而不是事前生成和部署静态文件会对性能产生不利影响。
换句话说,与使用静态文件创建命令行工具生成静态文件相比,动态创建静态文件并对其进行缓存对性能的影响更大。