2013-01-06 63 views
2

我試圖將django壓縮機集成到現有的django項目的性能原因。Django壓縮機與遠程腳本(谷歌地圖API)

我已經添加了塊左右{% compress css %}{% compress js %}標籤在所有的JS和CSS腳本由子模板(即網站上所有其他網頁擴展根模板那些塊把自己的頁面包含我的根模板特定文件)。這完美的作品大部分時間,但一個頁面有一個嵌入谷歌地圖與JS頭:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=weather&key={% include "google_maps_api_key" %}&sensor=false"> 

這觸發呈現頁面時異常:

Caught UncompressableFileError while rendering: 'http://maps.googleapis.com/maps/api/js?libraries=weather&key=MYAPIKEY&sensor=false' isn't accessible via COMPRESS_URL ('/media/') and can't be compressed 

有沒有辦法告訴Django的壓縮機跳過這個腳本?有沒有辦法讓它訪問和壓縮遠程腳本?

+0

您是否找到答案? – fedosov

回答

0

不,AFAIK這是不可能的(沒有修改django壓縮器相當重)。根據您的描述,最好的解決方案是爲本地可壓縮腳本和遠程腳本設置單獨的塊,並讓您的子模板適當地使用這些塊。

0

技術上可行嗎?是的...您可以將地圖下載到您的資產文件夾,然後從那裏壓縮。

但是,這違反了Google的使用條款,可能會造成一些奇怪的邊緣情況。更好的選擇是移動{%compress%}調用之外的地圖標記。由於谷歌地圖已經被預先壓縮,並且託管在Google的快速CDN上,無論如何,您的網頁加載速度要比試圖自己服務的速度快。