奇怪的django静态文件行为

时间:2014-11-15 01:16:47

标签: python django django-staticfiles collectstatic

我在设置中DEBUG=False时获取静态文件404。 DEBUG=True时,该文件可以正常使用。

我正在查看文档,我的所有配置对我来说都没问题。

# my_settings.py
STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')

STATIC_URL = '/static/`

然后我运行collectstatic --settings=my_settingsls static以确认已收集文件。它有:

ls ls static/css/core.css
# (its there).

但是当我们要求" localhost:8000 / static / css / core.css"我们得到404。

注意,运行python manage.py findstatic css/core.css --settings=my_settings无法找到该文件。当我执行DEBUG=True并运行findstatic时,它会找到该文件,但是在子应用的静态目录中,而不是收集的目录(STATIC_ROOT)。

注意我有:

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

和" staticfiles"在我的INSTALLED_APPS

Django 1.6

1 个答案:

答案 0 :(得分:1)

正如您在设置中指定DEBUG = FALSE一样,它现在留在HTTP服务器上,如nginx或apache,以提供静态文件。您需要配置Web服务器以提供静态文件。可以找到apache的示例here