Django-compressor: デバッグがFalseに設定されている場合、Djangoは圧縮ファイルをフェッチしません

作成日 2012年12月22日  ·  5コメント  ·  ソース: django-compressor/django-compressor

そのため、デバッグ= Falseを使用して開発中のdjango-compressorを動作させました。 ただし、Debug = Trueに設定すると、django-compressorは正しいURL、ファイル、およびすべてを生成するように見えますが、Django自体はそれらのファイルに対して404を返します。

私が持っています

STATIC_ROOT = os.path.join(PROJECT_DIR, "static_media")

プロジェクトのstatic_mediaフォルダー内に、コンプレッサーによって作成されたCACHE / css /bfdeac875f7a.cssファイルが実際に表示されます。

生成されたHTMLファイルの中には、

<link rel="stylesheet" href="/static/CACHE/css/bfdeac875f7a.css" type="text/css" />

しかし、ページがロードされると、runserverは次のように言います。

[21/Dec/2012 22:28:44] "GET /static/CACHE/css/bfdeac875f7a.css HTTP/1.1" 404 276

私は何かが足りないのですか? 私はすでに持っています

  • 'django.core.context_processors.static',TEMPLATE_CONTEXT_PROCESSORS追加しました
  • 'compressor.finders.CompressorFinder',STATICFILES_FINDERS追加しました
  • 'compressor',INSTALLED_APPS追加しました

ありがとう!

最も参考になるコメント

申し訳ありませんが、以前にそれを見逃したとは信じられません。DEBUGが_True_のときに問題が発生したことをどういうわけか読みました。

ともかく。 DEBUG = Falseの場合、パフォーマンスとセキュリティの問題のため、実行サーバーはデフォルトで静的ファイル自体の提供を拒否します。 これは、これを本番環境で使用できないようにするためです。 DEBUGがFalseのときにローカルで静的ファイルを適切にテストできるようにするには、 https ://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/に記載されているように、-insecureフラグをrunserverに渡す必要があり

それで問題は解決しますか?

全てのコメント5件

やあ、

私たちはあなたを助けるためにあなたのセットアップについてもう少し情報が必要になるでしょう:

  • COMPRESS_ *設定、STATIC_URL設定、STATICFILES_ *設定
  • INSTALLED_APPSに静的ファイルがありますか?
  • Djangoのバージョンは何ですか?
  • 他の静的ファイルは正しく機能しますか? あなたはそれらを提供するためにrunserverを使用していますよね?

ありがとう

やあ、

次の設定でDjango1.4.3を使用しています。

...

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = os.path.join(PROJECT_DIR, "static_media")

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(PROJECT_DIR, "static"),
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
    'compressor.finders.CompressorFinder',
)

COMPRESS_PRECOMPILERS = (
    ('text/coffeescript', 'coffee --compile --stdio'),
    ('text/x-scss', 'sass --scss {infile} {outfile}'),
)

...

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    ...
    'compressor',
    ...
)

...

static_media内に手動で配置したファイルは、 /static/ URLからもアクセスできないため、静的ファイルを正しく構成していないはずです...それが重要な場合は、Django1.3からも移行しました。 私が何を試してみるべきかについての予感がありますか?

また、runserverは、Debugがtrueの場合、 static_mediaフォルダー内のファイルを正常にフェッチしますが、falseの場合は失敗します...

申し訳ありませんが、以前にそれを見逃したとは信じられません。DEBUGが_True_のときに問題が発生したことをどういうわけか読みました。

ともかく。 DEBUG = Falseの場合、パフォーマンスとセキュリティの問題のため、実行サーバーはデフォルトで静的ファイル自体の提供を拒否します。 これは、これを本番環境で使用できないようにするためです。 DEBUGがFalseのときにローカルで静的ファイルを適切にテストできるようにするには、 https ://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/に記載されているように、-insecureフラグをrunserverに渡す必要があり

それで問題は解決しますか?

おやおや、私の悪い。 元の質問で誤って「True」と「False」を切り替えてしまいました。混乱してすみません。

そして、どうもありがとう、それは問題を解決します!

このページは役に立ちましたか?
0 / 5 - 0 評価