微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

在开发网上商店时,我们不想将所有媒体资产复制到本地开发机器上。

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

如何实现?

解决方法

对于 Magento 2,a open source module 正是这样做的。

如果您使用的是 Linux,则似乎可以使用更通用的解决方案,即使用 http 和 union fuse 文件系统。这适用于不同的 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。