4

私は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" %}')

4

1 に答える 1

9

問題は、href の末尾の と の間にスペースがあること%}です"。エラー メッセージを注意深く見ると、圧縮プログラムが末尾にスペースがあるファイルを探していることがわかります。(リーフレットのスタイルシートでも同じです。)

于 2013-11-06T01:51:47.143 に答える