0

Django-compressor での作業。とにかく圧縮されたファイル名を取得して、スクリプトを非同期にロードできるかどうか疑問に思っています(django-compressorは現在それをサポートしていないため)。

たとえば、テンプレートでこのようなことを行うことができます

var compressed = {{ COMPRESSED_JS_FILENAME|undefined }};
if (compressed) {
    var script = document.createElement('script');
    script.src = compressed;
    script.setAttribute('async', True);
    document.documentElement.firstChild.appendChild(script);
}

Python バージョン: 2.7
Django バージョン: 1.4.1

4

1 に答える 1

0

代替ソリューション:

これを行う方法が見つからなかったので、代わりにページにフックを追加してタグを調べ、基本的に圧縮されたものを探し、それらに非同期タグを追加しました。擬似コード/アイデア

content = BeautifulSoup(page)
scripts = [tag.extract() for tag in soup.find_all('script')]
for script in scripts:
    old_script = script
    src = script.get('src')
    if '/COMPRESSED/' in src:
        script['async'] = "True"
    page = page.replace(old_script, script) 
于 2014-03-04T19:41:21.633 に答える