14

何らかの理由で、django が静的ファイルを提供していません。

私はすでにこの問題に対する多くの修正を見てきましたが、まだ解決策を見つけていません。

これが私の構成です:

urls.py

urlpatterns = patterns('',
    (r'^$', index),
    (r'^ajax/$', ajax),
    (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': path.join(path.dirname(__file__), 'static')}),
)

設定.py

STATIC_ROOT = '/home/aurora/Code/django/test/static/'
STATIC_URL = '/static/'
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',
)

に移動するhttp://localhost:8000/static/css/default.css
と、次のエラーが表示されます。'css/default.css' could not be found

に移動するhttp://localhost:8000/static/
と、次のエラーが表示されます。Directory indexes are not allowed here.

静的ディレクトリがマッピングされているように見えますが、サブディレクトリはそうではありません。

4

6 に答える 6

17

開発中:

  • STATICFILES_DIRSすべての静的ファイルが常駐するすべての静的ディレクトリが必要です

  • STATIC_URLファイルがローカル マシンにある場合は、そうする必要があり/static/ます。それ以外の場合は、ここにベース URL を入力します。

  • INSTALLED_APPS含める必要があります'django.contrib.staticfiles'

テンプレートで、staticfiles モジュールをロードします。

{% load staticfiles %}
..
..
<img src='{% static "images/test.png" %}' alt='img' />

生産中:

  • STATIC_ROOTDjango がすべての静的ファイルを収集するために使用STATICFILES_DIRSする追加

  • 静的ファイルを収集する

python manage.py collectstatic [--noinput]
  • urls.py へのパスを追加します
from . import settings
    ..
    ..
urlpatterns = patterns('',
..
    url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.STATIC_ROOT)}),)`

より詳細な記事は次のとおりです。

http://blog.xjtian.com/post/52685286308/serving-static-files-in-django-more-complicited

http://agiliq.com/blog/2013/03/serving-static-files-in-django/

于 2015-03-16T22:01:45.827 に答える
7

実行python manage.py collectstaticして、静的ファイルが収集されている場所を確認してください。

これをあなたに追加してurls.py設定DEBUG=Trueしますsettings.py

if settings.DEBUG:
    urlpatterns += patterns('',
             (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT, 'show_indexes':True}),
         )

    urlpatterns += patterns('',
            (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes':True}),
        )
于 2012-08-20T17:47:34.543 に答える
5

urls.py に静的パスが必要だとは思わないので、それを削除すると動作するはずです。

現在はこんな感じです

urlpatterns = patterns('',
    (r'^$', index),
    (r'^ajax/$', ajax),
    (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': path.join(path.dirname(__file__), 'static')}),
)

r'^static 行を削除するだけです

urlpatterns = patterns('',
    (r'^$', index),
    (r'^ajax/$', ajax),
)

少なくとも、これはdjango 1.3以降で行われる方法です

于 2012-08-20T17:34:52.393 に答える