出于主题开发的目的,我有一个本地WordPress安装,可以从VM运行,可以通过以下方式访问:,http://local.app
. 我在临时服务器上也有一个远程版本的站点,http://staging.example.com
.
登台网站包含我设计主题的所有内容(如帖子、页面、WooCommerce产品等)。
所有这些都在服务器上的MySQL数据库以及中的媒体(图像、文件等)中wp-content/uploads
.
现在,通过有用的指南on the Codex 标题为“两个wordpress,一个数据库”,我的虚拟机上有一个主题、插件和wordpress核心的本地副本,从远程临时服务器获取所有数据。
唯一的问题是,所有媒体都得到了404,因为出于某种原因,指向媒体文件的所有URL都链接到了我的本地vm,而不是临时服务器。E、 g.如果我访问媒体库并转到“编辑媒体”页面,“文件url”如下所示:
在临时服务器上:http://staging.example.com/wp-content/uploads/2015/04/greigh.jpg
在我的本地vm上:http://local.app/wp-content/uploads/2015/04/greigh.jpg
检查数据库时,所有attachment
post类型的GUID具有完整URL,而不是相对URL。那么WordPress是如何构建这些URL的,有没有一种方法可以解决这个问题,而不必将整个媒体库复制到我的VM上?
SO网友:Kat
在核心的某个地方,URL在放入数据库时会得到绝对路径。
为什么不直接从登台服务器加载所有图像?在本地镜像文件时,让临时服务器保存文件。将以下内容添加到.htaccess
到您的本地上载文件夹,内容如下:
# Attempt to load files from production if they\'re not in our local version
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# Replace http://example.com with your production site\'s domain name
RewriteRule (.*) http://example.com/wp-content/uploads/$1
</IfModule>