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 本地開發的站點直接使用遠程的文件,而我也可讓節省下來的硬盤空間來放更多的貓咪圖片了。

相關文章
相關標籤/搜索