将网站从本地计算机迁移到实时服务器后,更新图像路径的最简单方法是什么?大多数时候,我最终都会手动更新路径。我相信一定有一种更简单的方法我错过了。
请建议。
我的猜测是您看到的问题是未在管理中设置文件路径的结果。如果您进入管理(admin/settings/file-system)并简单地保存页面,您将定义文件路径的值(这应该会消除问题)。
您还可以通过该界面将所有文件设置为使用原始默认(或本地)目录。
如果您想知道,问题是文件路径的 variable_get 调用是动态的,基于您从中加载 settings.php 文件的站点目录。一旦设置了值,它就不再使用默认设置,而是使用您的值。
如果您是从它们在本地与服务器上的相对位置物理移动文件,那么我不确定是否有很多解决该问题的好方法。
实际上,我在本地机器上有一个多站点设置,在实时服务器上有一个站点设置,这导致部署时图像损坏。解决此问题的最简单方法是使用简单的 SQL 查询更新服务器上的文件路径。更新文件 SET filepath = REPLACE(filepath, 'old/path', 'new/path');
当这对我们不利时,我们刚刚从本地主机上的 Acquia Drupal 7 安装迁移到生产机器。事实证明,服务器设置的差异足以导致在数据库导入后某些路径出现错误。
我们发现做一个
select * from menu_router where path like '%sites/myoldpath%'
找到了一个名为 image_style_deliver 的 page_callback 的路径,该路径在新服务器上无效。
update menu_router set path 'sites/mynewpath/files/styles%', tab_root = 'sites/mynewpath/files/styles/%' where path like '%myoldpath%'
原来是解决方案。我什至不必重新生成任何内容。Drupal 立即恢复并在正确的文件夹中生成了适当的缩略图。
我将一个站点从本地开发服务器移动到远程开发服务器。所有的图像都坏了。即使是我在搬家后尝试上传的新图片也显示为断开的链接。我终于发现我的 sites/DOMAIN_NAME/files 文件夹权限已更改。该文件夹大多数对 Web 用户是可执行的,否则 Drupal 无法访问它以检索该文件夹中的文件。
我刚才在我的服务器上做的最简单的方法是使用搜索和替换编辑数据库 .sql 转储文件,以将您想要的文件或 url 路径从旧服务器替换到新服务器。我迁移了 mu drupal 站点,发现链接已损坏,这就是我为解决问题所做的 1:使站点脱机 2:使用 sql dump 备份数据库。删除旧数据库。
3:使用搜索和替换来编辑 sql 转储文件的副本,并将路径放置到您想要的 url 或文件。我的情况是,我想编辑我所有图像链接的 url 前缀,例如http://my.oldserver.co.uk到http://newserver.ac.uk。4 创建一个新数据库并使用相同的数据库名称、用户名和密码导入编辑后的 .sql 文件。