私はdjango圧縮を機能させようとしていますが、私の使用のために機能しないと思い{% static %}
ます。
私のテンプレートは次のとおりです(私はpyjadeを使用していますが、問題ではありません):
- load staticfiles
- load compress
| {% compress css %}
link(rel="stylesheet", href="{% static 'less/bootstrap.css' %} ")
link(rel="stylesheet", href="{% static 'timepicker/css/bootstrap-timepicker.min.css'%}")
link(rel="stylesheet", href="{% static 'leaflet/addons/locatecontrol/L.Control.Locate.css' %} ")
link(rel="stylesheet", href="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.css")
link(href='//api.tiles.mapbox.com/mapbox.js/v1.3.1/mapbox.css', rel='stylesheet')
| {% endcompress %}
そして私のsettings.pyの一部:
PROJECT_DIR = os.path.dirname(os.path.realpath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, '../static')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(PROJECT_DIR, 'media'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#'django.contrib.staticfiles.finders.DefaultStorageFinder',
'compressor.finders.CompressorFinder',
)
COMPRESS_URL = STATIC_URL
COMPRESS_ROOT = STATIC_ROOT
COMPRESS_STORAGE = "staticfiles.storage.StaticFileStorage"
INSTALLED_APPS = (....,'compressor',....)
圧縮しても$ python manage.py collectstatic
機能せず、元のファイルが吐き出されます。ドキュメントには、私が与えたと思う絶対パスを提供する必要があると書かれていますよね?誰かが圧縮作業を手伝ってくれますか? ありがとう。(私は django の静的ファイルに詳しくありません)。
アップデート
ティミーのコメントをたどった後、設定で有効にしましたCOMPRESS_ENABLED = True
(およびDEBUG=False
) が、ファイルを見つける必要があります。
UncompressableFileError at /
'less/bootstrap.css ' could not be found in the COMPRESS_ROOT '/Users/diolor/mysite/wsgi/static' or with staticfiles.
静的ファイルが正しく検出され、レンダリングされることに注意してください ( の場合COMPRESS_ENABLED = False
)。
私の構造:
mysite/
wsgi/
myapp/
settings.py
manage.py
media/
#js & css files
static/
[...]
しばらくプレイした後、compress が css と に問題があるよう{% static %}
です。
スタイルシートを
link(rel="stylesheet", href="/static/less/bootstrap.css")
大幅に圧縮する
link(rel="stylesheet", href="{% static 'less/bootstrap.css' %} ")
と、エラーが発生します。
js では、問題なくレンダリングされます。script(type="text/javascript", src='{% static "bootstrap/js/bootstrap.min.js" %}')