web-dev-qa-db-ja.com

Django runserverは開発中の静的ファイルを提供していません

開発にDjango with runserverを使用しています。本番サーバーにデプロイすると、すべての静的ファイルが表示されますが、ローカルコンピューターには表示されません。

collectstaticを実行し、DEBUG = Trueを設定しました。

私はオンラインで多くの異なる意見を見つけました。最も顕著なのはSTATICFILES_DIRSですが、それは私にはうまくいきません。

開発環境で静的ファイルを表示できるように設定するにはどうすればよいですか。ファイルをサーバーにアップロードするときに、本番環境が正しく機能するように変更を加える必要はありません。

編集-私のurls.pyファイル:

from Django.conf.urls import patterns, include, url
from Django.conf.urls.static import static
import newsflashes
import settings

from Django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/doc/', include('Django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('newsflashes.urls')),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

編集-ファイル構造:

静的と動的の2つのディレクトリがあります。静的ファイルの中には静的ファイルがあり、動的ディレクトリにはDjangoアプリがあります。

編集の設定:

私の関連する設定は次のとおりです

STATIC_ROOT = os.path.join(BASE_DIR, '..', 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = ()
18
Meir

私はなんとかそれを修正することができました。

プロジェクトフォルダにstaticという名前の別のディレクトリを作成し、そこに静的ファイルをコピーしました。

次に追加しました:

from Django.contrib.staticfiles.urls import staticfiles_urlpatterns
import settings
if settings.DEBUG:
    urlpatterns += staticfiles_urlpatterns()

私のurls.py

そして

STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)

私のsettings.pyに。

次に、デプロイするときにmanage.py collectstaticを実行し、Apacheが適切に構成されているため、すべてが機能します。

に基づく http://dlo.me/archives/2013/01/14/how-to-serve-static-files-Django/

ありがとうございます。

23
Meir