有人可以告诉我何时在 Magento 2 开发人员模式下运行哪些编译命令吗?我不确定我是否理解正确。

在开发文档中, 开发者模式 描述如下:

  • 静态视图文件不被缓存;每次调用它们时,它们都会被写入 Magento pub/static 目录

这是否意味着, pub/static 中的每个单独文件都是在请求时生成的,并且您永远不需要调用 setup:static-content:deploy?这与我的经验相矛盾。或者我可以删除任何文件并重新生成它们吗?此外,图像、CSS 和 JS 文件的处理方式似乎有所不同。

开发者模式文档页面没有提到代码编译,但我认为也有区别,所以没有必要运行 setup:di:compile 发生所有变化之后 di.xml 文件。这是正确的吗?如果是,代码生成在开发人员模式下如何工作?

换句话说: 除了缓存之外,在哪些更改之后我需要运行哪些命令?

有帮助吗?

解决方案

注意:我经历过 开发者模式 删除 pub/static 会破坏机制,因为你摆脱了 .htaccess 在该文件夹中发挥作用的文件。

如果您保留 pub/static/.htaccess 在开发者模式下创建文件,您不需要运行任何编译命令:Magento 将在请求时立即创建文件的符号链接。这意味着,如果您还禁用了缓存,则对静态资源的更改将立即可见。

您可以删除 pub/static/frontend 或者 pub/static/adminhtml 反而。

默认模式 资产是 物化的pub/static 子文件夹,这意味着它们是在第一次请求时创建的(复制的,不是符号链接的)。如果修改它们,则必须刷新缓存才能更新它们。

生产方式 在运行以下命令之前,资产不会具体化(根据请求导致 404 HTTP 错误) bin/magento setup:static-content:deploy 命令。

希望能帮助到你。

其他提示

根据我的经验,您不需要在开发人员模式下运行任何代码/静态文件生成命令。

如果没有生成静态文件,则可能存在另一个问题。

我第一眼看到有两个原因:

  • 开发者模式无法正常工作。可能由于某种原因激活失败
  • pub/static.php 上静态文件的重写不起作用

这是否意味着, pub/static 中的每个单独文件都是在请求时生成的,并且您永远不需要调用 setup:static-content:deploy?这与我的经验相矛盾。或者我可以删除任何文件并重新生成它们吗?

是的。但根据我的经验,这在大多数情况下是行不通的。可能是一个错误。更好的解决方案是删除 pub/static 每当您更改静态文件(js、css、html 等)时,即使您已经激活了开发人员模式,也可以重新部署静态内容。我自己对此有疑问。

只是为了澄清三种不同模式之间的关系(来源:Magento U 基础课程)。粗体表示与您的问题相关的具体要点。

开发者模式

  • 未启用静态文件具体化。
  • 浏览器中显示未捕获的异常
  • 错误处理程序中引发的异常,未记录
  • 系统登录 var/report, ,非常详细。

在开发自定义或扩展时,应使用开发人员模式。此模式的主要好处是您可以看到错误消息。它不应在生产中使用,因为它对性能的影响。 在开发人员模式下,每次请求时都会生成静态视图文件。他们写信给 pub/static 目录,但未使用此缓存。这具有巨大的性能影响,但是开发人员对查看文件的任何更改都可以立即可见。

浏览器中显示了未知的例外,而不是记录。每当无法调用事件订户时,就会抛出例外。

系统登录 var/report 在此模式下非常详细。

生产模式

  • 生产系统的部署阶段;最高性能
  • 异常不会向用户显示——仅写入日志。
  • 此模式禁用静态文件实现。
  • Magento 文档根目录可以具有只读权限。

一旦将其部署到生产服务器后,您应该在生产模式下运行Magento。

生产模式提供 Magento 2 中的最高性能。

此模式最重要的方面是将错误记录到文件系统,并且从未显示给用户。 在此模式下,静态视图文件在要求时不会自动创建;相反,它们必须部署到 pub/static 使用命令行工具目录。生成的页面将包含指向已部署的页面资源的直接链接。

对视图文件的任何更改都需要再次运行部署工具。

由于使用CLI工具部署了视图文件,因此Web用户确实需要具有写入访问。马真托 pub/static 目录可以具有仅阅读的权限,这是公开访问服务器上更安全的设置。

默认模式

  • 当没有指定其他模式时使用
  • 对用户隐藏异常并将其写入日志文件
  • 启用静态文件具体化。
  • 不推荐/未针对生产进行优化:缓存会对性能产生负面影响。

顾名思义,如果没有指定其他模式,则默认模式是Magento软件的运行方式。

在此模式下,错误将记录到以下文件中 var/reports 并且从未向用户显示。 静态视图文件即时构成,然后缓存。

与开发人员模式相反,在清除生成的静态视图文件之前,视图更改是不可见的。

默认模式未针对生产环境进行优化,主要是因为 静态文件是在即时实现的,而不是事先生成和部署它们.

换句话说, 与使用静态文件创建命令行工具生成它们相比,即时创建静态文件并缓存它们具有更大的性能影响。

许可以下: CC-BY-SA归因
scroll top