如果你有遇到过较大规模的 Drupal 项目,但可能已经发现了当 files 目录过于巨大对开发所带来的巨大挑战。如何让开发服务器(或者你的个人电脑)与这些文件保持同步是件非常痛苦的事情,但如果不这样做,往往又会因为无法使用用户上传的文件或附件,使网站开发过程中的很多重要的问题无法被发现。

  要解决这个问题有非常多的办法,但要么非常慢,要么非常复杂。例如使用Drush命令或者使用脚本程序将网站的文件下载后再上传到本地开发环境,甚至有人会考虑使用FTP执行这样的操作(请千万不要这样做)。尽管这些办法都能达到效果,但我还是希望能够节约宝贵时间和硬盘空间。

  最开始我们找到了 Stage File Proxy 模块,它能够让 Drupal 将所有的文件请求都定向到线上服务器,即使网站是在本地运行时也可以有效工作。但是要让这个模块正常工作,需要对网站进行一些调整并安装额外的模块。所以,尽管这个模块可以解决问题,但我还是希望能有其它的方案。

  之后,我们发现可以使用 Apache 的 URL重写规则来满足需要——当Apache程序在处理连入的网页请求时,重写规则允许它对满足指定规则的URL地址进行修改——例如,它可以将访问本地 files 目录的请求重定向到线上的服务器。

  经过查找有关URL重写规则的帖子和教程,我们终于可以写出所需要的代码了。因为我使用 MAMP 进行开发,所以添加 Apache 配置代码片段比安装模块要简单得多。同时这个办法即不需要对修改网站设置,也不需启用新的模块。如果你不是使用 MAMP 作为开发环境,Apache重写配置代码的设置可能会略有不同。(译注:其实就是将以下配置代码片段粘贴到Apache网站配置部分)

  以下便是让 Drupal 开发时使用远程文件的示例代码:

### Apache Rewrite

RewriteEngine on

# Force image styles that have local files that exist to be generated.

RewriteCond %{REQUEST_URI} ^/sites/([^\/]*)/files/styles/[^\/]*/public/((.*))$

RewriteCond %{DOCUMENT_ROOT}/sites/%1/files/%2 -f

RewriteRule ^(.*)$ $1 [QSA,L]

# Otherwise, send anything else that's in the files directory to the

# production server.

RewriteCond %{REQUEST_URI} ^/sites/[^\/]*/files/.*$

RewriteCond %{REQUEST_URI} !^/sites/[^\/]*/files/css/.*$

RewriteCond %{REQUEST_URI} !^/sites/[^\/]*/files/js/.*$

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ http://www.example.com/$1 [QSA,L]

  如果你使用MAMP进行开发,打开MAMP,在高级面板的最下方找以“自定义虚拟主机设置”,将上面的代码粘贴进去后进行保存即可(注意将代码中的 example.com 修改成你自己的域名地址)。

  最后,只需要重启Aapche便可以让 Drupal 本地开发的站点直接使用远程的文件,而我也可以让节省下来的硬盘空间来放更多的猫咪图片了。

原文标题:Drupal开发时如何使用远端图片减轻工作量

原文地址:http://drupalct.org/drupal-development/use-remote-images-and-files-for-local-drupal-development.html

转载于:https://www.cnblogs.com/drupalct/p/5132477.html

Drupal开发时如何使用远端图片减轻工作量相关推荐

  1. 【长按图片识别】uniapp vue开发时,点击图片识别—实现转发、收藏、识别图片二维码

    1.html代码: <image show-menu-by-longpress="true" @click="previewImage" src=&quo ...

  2. 微信小程序:背景图片电脑开发时可以显示,手机测试时无法显示

    背景图片在编辑器中可以展示,但是手机预览时无法显示. 原因:小程序背景图片只可以展示base64或者网络地址图片,背景图片如果使用本地路径地址,电脑开发时可以正常显示,手机测试时无法显示背景图. 解决 ...

  3. iOS开发系列--无限循环的图片浏览器

    概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件都介绍一遍确实没有必要,所谓授人以鱼不如授 ...

  4. Android应用开发中三种常见的图片压缩方法

    Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩). 一.质量压缩法private Bitmap comp ...

  5. J2EE开发时的包命名规则

    http://www.blogjava.net/paulwong/archive/2012/04/15/374675.html 转一个J2EE开发时的包命名规则,养成良好的开发习惯 代码编写规范目的: ...

  6. [项目过程中所遇到的各种问题记录]工具篇——.NET开发时常用的工具类库

    在日常开发的过程当中我们总是会根据项目的开发需求将一些公用的类或者方法进行抽象封装,这些类或方法的抽象封装可能是基于某个项目或者多个项目,最常见的应该就是SQLHelper了,这些类库在实际使用的过程 ...

  7. Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题

    Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题 1.调用相机,兼容7.0 AndroidManifest配置 <providera ...

  8. Android 10开发之 保存、读取图片

    Android 10开发之 保存.读取图片 概述 从Android 10(Q)开始,谷歌就开始修改了外部存储权限,叫做分区存储,分区存储可以分为两个目录,分别是 沙盒目录(App-specific d ...

  9. php没开启wap功能,php作wap开发时遇到的问题

    1.文件格式 首先要遇到的问题肯定是文件格式,在作 web开发时,大家都是用的html或xhtml,到了wap开发时,就得用wml了.什么是wml?大家可以去查更详细的资料,我这里只是略微的提到. 在 ...

  10. 实习之遇到QT程序开发时的问题及解决方案

    实习之遇到QT程序开发时的问题及解决方案 1.QT中QString和C++中的String转换 ·问题: 由于一开始是在codeblocks中编程,一直使用的是String类型,现在将程序移到QT中运 ...

最新文章

  1. 远程访问mysql数据库_关于远程连接MySQL数据库的问题解决
  2. 三十七、Java集合中的Hashtable
  3. CSS干货直击:腾讯无边界访问控制体系建设
  4. 【C语言进阶深度学习记录】二十七 C语言中字符串的相等比较
  5. 改变css名称,样式命名规则?css
  6. php里 \r\n换行问题
  7. 9、Fiddler中设置断点修改Request
  8. 服务器温度检测软件_科技产品—整机柜服务器—产品简介
  9. 服务器向客户端发送数据自动中断
  10. 常用 Jacobi 行列式 | 重积分变量替换
  11. 解决nginx设置反向代理后,css|js|gif|jpg|jpeg|png|bmp|swf等静态资源无法加载
  12. python爬取拉钩网招聘信息分析
  13. 自动化测试工程师_所以你想成为一名测试自动化工程师
  14. word+Endnote参考文献对齐设置设置流程
  15. 1-MATLAB APP Design-图像的输入与输出
  16. 【实体对齐·综述】A Benchmarking Study of Embedding-based Entity Alignment for Knowledge Graphs
  17. JS删除数组对象中指定元素对应的对象
  18. javascript字符串匹配正则表达式方法
  19. BAT蝙蝠视频聊天室(服务器+客户端+架设相关软件)免费提供
  20. python脚本编辑器 v2ex_python3 模拟登录v2ex实例讲解

热门文章

  1. 【程序猿】2016年自己的十年计划篇
  2. ddrescue重建损坏磁盘
  3. wenbao与最短路(Floyd)
  4. android中LayoutInflater详解与使用
  5. [恢]hdu 2062
  6. LLBL Gen 元数据编程 LLBL Gen Meta-data Programming
  7. R 语言之数据分析高级方法「GLM 广义线性模型」
  8. 用大数据看中国美食咸甜之战
  9. 谈谈R中的乱码(三)
  10. 互联网开发人员压力到底有多大?