出于性能方面的原因,我正在尝试将django-compressor集成到现有的django项目中。
我已经在根模板中的块周围添加了{% compress css %}和{% compress js %}标记,其中所有JS和CSS脚本都包含子模板(即.站点上的所有其他页面在根模板中扩展这些块,以放置特定于页面的文件)。这在大多数情况下都很好用,但有一个页面嵌入了一个带有JS标题的Google Map:
<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-compressor跳过这个脚本?有没有办法让它访问并压缩远程脚本?
发布于 2013-03-27 03:13:01
不,AFAIK这是不可能的(如果没有很大的修改django-压缩器)。根据您的描述,最好的解决方案是为本地、可压缩脚本和远程脚本使用单独的块,并让您的子模板适当地使用这些块。
发布于 2013-06-05 02:28:37
这在技术上是可行的吗?是的..。您可以将地图下载到您的assets文件夹,然后从那里进行压缩。
然而,这违反了谷歌的使用条款,并可能造成一些奇怪的边缘情况。更好的办法是将地图的标记移到{% compress %}调用之外。由于谷歌地图已经被预压缩,并托管在谷歌的快速CDN上,你的网页无论如何都会比你自己尝试服务器加载得更快。
https://stackoverflow.com/questions/14180239
复制相似问题