在发展模式,我的Django应用程序从STATICFILES_DIRS的*一个服务静态文件,而不是其他。的Django没有看到所有STATIC_DIRS
这是我在settings.py文件代码:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'bower_components'), # OK
os.path.join(BASE_DIR, 'practice_custom'), # Not OK
]
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]
文件中bower_components被发现,但文件practice_custom都没有。两个目录都在同一个地方(顶层)。如果我重新命名bower_components目录然后bower_componentszzzzzz的文件都没有找到,这意味着它们正在通过staticfiles应用程序中。我们在find()方法(---寻找:)中将代码中的打印语句放在代码中,并且它显示了提供的路径,正如您可以看到的那样格式相同,但一个结果为404.
---looking for: practice_custom/xyz/style.css
[09/Mar/2017 21:55:11] "GET /static/practice_custom/xyz/style.css HTTP/1.1" 404 1732
---looking for: bower_components/c3/c3.min.css
[09/Mar/2017 21:55:11] "GET /static/bower_components/c3/c3.min.css HTTP/1.1" 200 2043
任何想法?
编辑:
在检查FileSystemFinder.find_location()我看到了它在寻找bower_components/bower_components,然后在顶层的bower_components具有峰值目录,发现它确实有一个子目录名为bower_components,这是工作的唯一原因!
虽然当我运行collectstatic
我得到静态/ bower_components /引导等...因为我希望看到。
/manage.py
/bower_components/bower_components/bootstrap
/static/bower_components/bootstrap
/...
所以我想,问题是为什么它这样做?!
什么是你的Django和Python版本? – rodorgas
Django是1.9.5,Python是3.5 – andyhasit