Django 1.6.2 无法提供静态内容

2 投票
1 回答
527 浏览
提问于 2025-04-18 02:41

我在使用 Django==1.6.2 的时候,无法提供静态内容(为了开发目的)

没有任何错误信息可以参考。

我在浏览器中只看到404的错误信息,开发服务器也显示404。

[14/Apr/2014 16:50:29] "GET /static/resource/css/bootstrap.min.css HTTP/1.1" 404 1697

这是我的设置:

INSTALLED_APPS = (
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',

 # Django extra
 'django.contrib.webdesign',
)


# All directories below have been checked and exist on disk.
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(SITE_ROOT, 'site_media/static')
MEDIA_ROOT = os.path.join(SITE_ROOT, 'site_media/media')

主 urls.py 文件的内容:

from django.conf import settings
from django.conf.urls import patterns, include, url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    # ADMIN
    url(r'^admin/', include(admin.site.urls)),

    # HOMEPAGE
    url(r'^$', 'mainmodule.views.home', name='home')

)

if settings.DEBUG:
    urlpatterns += staticfiles_urlpatterns()

settings.py 中的调试模式已经开启

我也尝试过在 urls.py 文件中使用 django.conf.urls.static 方法,但问题依旧。

我的静态目录不在任何应用内部。我之前从来没有遇到过这个问题,也在官方 Django 文档中找不到相关信息。

我可以顺利运行 collectstatic。

在我的模板中使用 {% static "....." %} 也能正常解析 URL。

我查看过的相关讨论(但没有帮助):

无法让 Django 提供静态文件

Django 1.6.2 的 STATICFILES

1 个回答

1

Django的开发服务器并不知道也不关心STATIC_ROOT或者收集到的文件。为了在开发模式下(也就是使用runserver命令时)正确地提供静态文件,你应该把你的静态文件放在:

  1. 一个叫做static的文件夹里,这个文件夹在你的应用内部。

  2. 任何在STATICFILES_DIRS中列出的其他文件夹。

另外,你还需要把DEBUG设置为True。

撰写回答