Magento 2 将 Apache docroot 移动到 pub 目录

Magento 2 moving Apache docroot to pub directory

我最近执行了一次 Magento 安全扫描,它建议我将我的 Magento 2 安装的根移动到 pub 目录。

我已按照说明进行操作 here 但我没有成功。该站点无法找到图像和合并的 CSS 文件。我仔细检查了 CSS 文件和图像是否存在于 pub/static.

中各自的目录中

我的 Apache 配置:

DocumentRoot /var/www/html/magento2/pub
ServerName www.somedomainorother.co.uk
ServerAlias somedomainorother.co.uk

<Directory "/var/www/html/magento2/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
</Directory>

我正在使用 Apache 2.4、Centos 7.3。

有没有人运行以前遇到过这样的问题,你是如何解决的?

我假设您已经尝试过以下常用技巧:

php bin/magento setup:static-content:deploy

您可能需要在后面添加一个“-f”,具体取决于您所处的模式。此外,如果您使用的语言不同于 'en_US',那么您需要在末尾添加它。我必须这样做:

php bin/magento setup:static-content:deploy -f en_GB

这帮助我摆脱了那些 CSS 和图像问题。

否则我会考虑是否是权限问题?

我遇到了完全相同的问题,根本原因是我发现 Magento 仍在 [site_url]/pub/static 或(如果启用了静态版本控制)下寻找静态资源:

[site_url]/version[NNNNNN]/pub/static

虽然他们应该根据新根请求

[site_url]/版本[NNNNNN]/静态

我必须检查静态和媒体 url,在 core_config_data 中我发现 [site_url]/pub/media 和 [site_url]/pub/static 作为值对于 base_media_url,base_static_url 表示安全和不安全。我只是从 core_config_data 中删除了这些配置记录,并让应用程序默认正确检索它们。