開発に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 = ()
私はなんとかそれを修正することができました。
プロジェクトフォルダに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/
ありがとうございます。