在Django 1.8中,如何设置settings.py以管理静态文件?

时间:2017-05-17 18:51:14

标签: python django twitter-bootstrap

代码段管理settings.py中的静态文件,如下所示。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATICFILES_DIRS = [
    os.path.join(
        os.path.dirname(__file__),
        'static',
    ),
]
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            BASE_DIR + '/templates/'
        ],
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
            'loaders': [
                ('django.template.loaders.cached.Loader', [
                    'django.template.loaders.filesystem.Loader',
                    'django.template.loaders.app_directories.Loader',
                ]),
            ],
            'debug' : True
        },
    },
]
STATIC_URL = '/static/'

url.py 文件如下。

from django.conf.urls import include, url
from django.contrib import admin
from tweets.views import Index, Profile
admin.autodiscover()

urlpatterns = [
    url(r'^$', Index.as_view()),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^user/(\w+)/$', Profile.as_view()),
]

views.py 文件如下

{% load staticfiles %}
<html>
<head>
    <title>Django</title>
    <link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}" media="screen">
</head>
<body>
    {% block content %}
    <h1 class="text-info">Hello {{name}}!</h1>
    {% endblock %}
<script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
</body>
</html>

当我运行服务器时,浏览器找不到 bootstrap.min.js 文件。

  

在/static/bootstrap/css/bootstrap.min.css找不到页面     http://localhost:8000/static/bootstrap/css/bootstrap.min.css     找不到“bootstrap / css / bootstrap.min.css”

似乎静态文件网址是正确的。 但是浏览器找不到静态文件。 请告诉我原因以及如何处理?

1 个答案:

答案 0 :(得分:3)

要提供静态文件during development,您应该在urls.py中添加以下代码:

from django.conf.urls import include, url
from django.contrib import admin
from tweets.views import Index, Profile
from django.conf import settings
from django.conf.urls.static import static
admin.autodiscover()

urlpatterns = [
    url(r'^$', Index.as_view()),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^user/(\w+)/$', Profile.as_view()),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

您应该在项目文件夹static/your_app/your_files

中创建路径
相关问题