Django 1.11 - 静态文件404中的Webpack包

时间:2017-09-06 13:02:45

标签: python django

我在使用webpack提供放置在静态文件夹中的静态文件时出现问题。它不会给我一个追溯或错误,只是文件不存在的404.

我的settings.py

DEBUG = True
STATIC_URL = '/static/'
# This is /Users/ml/Documents/Python/MyProject/site/static
STATIC_ROOT = str(ROOT_DIR('static'))
STATICFILES_DIRS = (
    # This is /Users/ml/Documents/Python/MyProject/site/apps/static
    str(APPS_DIR.path('static')),
)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

我的urls.py

urlpatterns = [
    # URL config here...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

我的文件夹结构

.
project/
templates/
static/dist/main.j346h346hkjh346.css
manage.py
webpack.config.js

我尝试访问/static/dist/main.j346h346hkjh346.css并收到404错误。它无法提供服务。我错过了什么?

1 个答案:

答案 0 :(得分:0)

所以经过额外的测试后我发现了这个问题。

问题是我使用Webpack捆绑我的静态文件,然后将它们直接输出到/static/文件夹。当我将它们输出到单独的文件夹(./assets/dist/)然后将./assets/文件夹添加到我的STATICFILES_DIRS时,我能够找到我的文件。

我对此感到很惊讶,我不认为/static/文件夹只能由collectstatic使用,并且每个文件也必须有第二个来源。也许其他人可以添加一些关于为什么这样做的评论。