django 中的静态文件命名空间



我无法让我在 Django 中的静态文件与"命名空间"网址一起使用 - 我想知道我在这里是否缺少什么?

我的项目结构

基本上,我的项目"static_test"中有一个名为"foo"的应用程序。在该应用程序中,我有一个包含"test.txt"的"静态"文件夹。

我没有在 settings.py 中更改任何内容,因此它包含所有默认设置:静态文件包含在INSTALLED_APPS中,STATIC_URL设置为"/static/"。

所有这些都完全符合官方的Django教程:https://docs.djangoproject.com/en/1.9/howto/static-files/

我正在使用 Django 1.9.2。

当我启动 Django 开发服务器时,这就是我得到的:

localhost:8000/static/test.txt - 200 OK 
localhost:8000/static/foo/test.txt - 404 Page not found

尽管官方教程声称

在模板中,对 url 进行硬编码,如/static/my_app/myexample.jpg或者最好使用静态模板标记,通过使用配置的STATICFILES_STORAGE存储为给定的相对路径构建 URL(当您想要切换到内容分发网络 (CDN) 来提供静态文件时,这会变得更加容易)。

为什么第二个网址(/static/foo/test.txt)对我不起作用?为什么第一个网址有效?我没有项目范围的静态文件夹。

谢谢

来自文档

您应该在设置的STATICIFILES_FINDERS变量中使用'django.contrib.staticfiles.finders.AppDirectoriesFinder'

第一个是在静态下搜索。第二个在静态下的foo下。

您的链接应如下所示。

 href="{% static "test.txt" %}"

settings.py 像这样

STATIC_URL = '/static/'

最新更新