Django - 将静态文件放在app文件夹

时间:2016-06-17 17:04:18

标签: django

我在现有项目中启动了一个django应用程序,我正在尝试按照项目的模式来组织内容。在其他应用程序中,我看到静态文件位于应用程序本身,例如: 文件路径:appname/static/js/file.js Javascript,在模板中:<script src="{% static 'js/file.js' %}"></script>

这适用于其他应用。我正在尝试做同样的事情,但渲染的文件网址给我一个404错误。

我应该检查什么才能使其正常工作?我查看了设置文件,但网址中没有任何特殊内容。

感谢您的帮助

1 个答案:

答案 0 :(得分:7)

路径appname/static/是Django在每个已安装的应用中都会查找的默认路径,不需要settings。确保您的新应用实际列在settings.INSTALLED_APPS

由于您在开发服务器上,可能缺少静态文件URL。确保这是urls.py

的结尾
if settings.DEBUG:
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    urlpatterns += staticfiles_urlpatterns()

为任何/static/中的所有文件添加网址路径appname/static/

此外,如果您在使用开发服务器时有更多目录(不是appname / static /)要映射到URL路径,那么您可以添加static()这样的

if settings.DEBUG:
    from django.conf.urls.static import static
    urlpatterns += static('/pics/', document_root=/var/www/pictures/)