我无法让我在 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/'