【问题标题】:Wordpress: Serve images from a CDNWordpress:提供来自 CDN 的图像
【发布时间】:2016-04-15 10:22:06
【问题描述】:

我使用 CDN 提供图片,然后将其上传到 Wordpress。我的设置是:

它工作得很好,但自从我更新到 Wordpress 4.5 后它就不再工作了。这是我现在的设置:

此过滤器也不起作用:

function my_cdn_upload_url() {
   return 'http://media.mydomain.com';
}
add_filter( 'pre_option_upload_url_path', 'my_cdn_upload_url' );

有人知道我应该如何从 CDN 提供我的图片吗?

谢谢。

【问题讨论】:

    标签: wordpress cdn


    【解决方案1】:

    看起来你是从相当旧的 WP 版本升级的,不是吗?上传文件夹和路径选项已在设置 -> 媒体中删除。

    那么,您的真实上传路径是什么样的?这不是标准的 domain.com/wp-content/uploads// 对吗? 如果是 - 升级后新图片会上传到哪里?

    尝试使用https://wordpress.org/plugins/custom-upload-dir/,看看它是否有助于将您的图像恢复到 CDN。

    【讨论】:

    • 不,我刚刚从 4.4 更新到 4.5。我读到这些设置自 3.5 以来已被删除,但我在 4.4 中有不同的安装,它们仍然显示这些选项。不要问我为什么......我的真实路径是正常的日期。我的 CDN 是 AWS cloudfront,并从 wp-content/uploads/2016/... 2016/
    • 简而言之:创建子域,更改数据库中的上传路径,将旧路径重定向到新路径。这里描述得很好:dezzain.com/wordpress-tutorials/…
    【解决方案2】:

    最简单的方法是在wp_options表中编辑“upload_url_path”的内容:

    upload_url_path > http://media.mydomain.com
    

    谢谢!

    【讨论】:

    • 使用此方法可以正确显示所有上传的旧媒体,但我无法上传任何新媒体文件;你有类似的问题吗?
    【解决方案3】:

    上述方法的问题是您没有文件写入权限来将图像上传到您的 CDN。

    另一种方法是将所有图片上传到某个地方 - 例如Amazon S3,或将它们保存在附属网络 CDN 上 - 然后将您的图像 URL 存储在您的帖子或产品的 postmeta 中。

    然后您需要更改主题文件以从 postmeta 字段而不是从特色图像或缩略图字段中提取图像。

    仅供参考 - 这种方法将大量加快导入速度,因为 WordPress 会创建多种尺寸的图像,占用 CPU 和磁盘空间。

    我创建了一个插件来解决这个问题:

    https://www.wpintense.com/product/external-images/

    【讨论】:

    • 我的解决方案基于AWS Cloudfront,只要文件存在于源路径中,它就会自动在他们的CDN服务器中读写文件。
    • 实际上听起来很酷。它如何处理写权限?您将服务器 IP 地址或其他什么列入白名单?
    • 不,您只需要 2 个子域。第一个是原始子域,应该指向您的图像文件夹。第二个指向origin子域:img-origin.yourdomain.com > A >188.95.253.55 img.yourdomain.com > CNAME > a1hysdadp83zeqq0.cloudfront.net
    【解决方案4】:

    最好的方法是使用 w3 总缓存。

    它有一个内置的cdn支持,当然你可以使用它的主要功能,缓存,对加速网站最有用。

    【讨论】:

    • 谢谢,但我不想使用它。插件越少越好。目前,Varnish 和 memcached 对我来说已经足够了。
    猜你喜欢
    • 2020-03-04
    • 1970-01-01
    • 2022-07-29
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 2020-01-15
    • 1970-01-01
    相关资源
    最近更新 更多