使 CMS 的媒体目录可用于本地开发,并回退到生产数据(例如 Magento 2 公共/媒体)

问题描述 投票:0回答:2

开发网上商店时(使用 Magento 2、Shopware 6...),我们不想将所有媒体资产复制到本地开发计算机。

仍然很好,能够获得系统的真实视图,即从生产服务器按需加载媒体图像。

如何实现这一目标?

content-management-system media development-environment
2个回答
1
投票

对于 Magento 2,有 一个开源模块 正是这样做的。

如果您使用的是 Linux,则似乎可以使用 http 和联合熔丝文件系统,使用更通用的解决方案。这可以在不同的 Shop- 和 CMS 系统上工作,例如 Shopware、TYPO3 等。

以下示例在Ubuntu 20.04上测试

但是:该解决方案尚未在生产安装上进行良好测试,因此请小心。

首先安装所需的软件包

apt install httpdirfs unionfs-fuse

我们假设生产服务器使用 Apache。在下一步中,我们启用目录列表,但仅限于特定的秘密用户代理。确保将“ThisIsSecret”替换为您的秘密。

<If "%{HTTP_USER_AGENT} == 'ThisIsSecret'">
  Options +Indexes +MultiViews
  AllowOverride None
</If>
<Else>
  Options -Indexes -MultiViews +FollowSymLinks
  AllowOverride All
</Else>

转到本地开发目录并移动当前的

media
目录:

cd /home/me/projects/example.com/public
mv media media_local

现在

httpdirfs
用于通过HTTP挂载服务器的目录。
httpdirfs
解析目录列表并让您查看远程文件。无法编辑。

mkdir media_remote
httpdirfs --cache --user-agent ThisIsSecret https://example.com/media/ media_remote

接下来,我们将

unionfs
与 CopyOnWrite (
cow
) 选项一起使用,以便仍然能够写入媒体文件夹。

mkdir media
unionfs-fuse -o cow media_local=RW:media_remote=RO media

0
投票

如果使用 Shopware 6,这也可能是一个选项:

https://github.com/tinect/TinectMediaStaging

如果请求制作中缺少的媒体文件。

© www.soinside.com 2019 - 2024. All rights reserved.