Drupal开发时如何使用远端图片减轻工做量

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

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

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

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

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

  如下即是让 Drupal 开发时使用远程文件的示例代码: 教程

### Apache Rewrite 图片

 

    RewriteEngine on ci

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

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

    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 修改为你本身的域名地址)。

 Drupal开发时如何使用远端文件减轻工做量

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

相关文章
相关标签/搜索