0

Django 1.3以降、使用メディアファイルをcssおよびjsファイルから分離するためにSTATIC_URLの概念が導入されました。

とを設定STATIC_ROOT = '/home/user/project/static/'STATIC_URL = '/static/'ました。

私のbase.htmlでは、次のようにパスを変更しました。

<link href="{{ STATIC_URL }}bootstrap/css/bootstrap.min.css" rel="stylesheet">

そして、url.py私は次の2行を追加しました。

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
...
urlpatterns += staticfiles_urlpatterns()

私のビューは、RequestCOntextを使用してテンプレートをレンダリングします。

return render(request, 'main_page.html', variables)

しかし、開発では、runserverを実行すると404が発生します。

[18/Aug/2012 17:12:04] "GET /static/jquery/jquery-1.8.0.min.js HTTP/1.1" 404 1682

何が欠けている可能性がありますか?

4

1 に答える 1

1

settings.py

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))

MEDIA_ROOT = os.path.join(PROJECT_DIR, 'site_media')
MEDIA_URL = '/site_media/'
STATIC_URL = '/static/'

if DEBUG:
    STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
else:
    STATICFILES_DIRS = (
        os.path.join(PROJECT_DIR, 'static'),
    )

urls.py

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

それはうまくいくはずです:)

于 2012-08-18T16:30:21.923 に答える