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

nszi6y05  于 2023-03-04  发布在  Go
关注(0)|答案(2)|浏览(135)

我已经在一个现有的项目中启动了一个django应用程序,我试图按照项目的模式来组织东西。在其他应用程序中,我看到静态文件在应用程序本身中,例如:文件路径:appname/static/js/file.js Javascript,模板内:<script src="{% static 'js/file.js' %}"></script>
这在其他应用程序中也能用,我也试着这么做,但是渲染文件的url给了我一个404错误。
我应该检查什么才能让它工作?我已经在设置文件中找过了,但是那里没有什么特别的东西,网址中也没有。
谢谢你的帮助

pw9qyyiw

pw9qyyiw1#

路径appname/static/是Django在每个已安装应用中查找的默认路径,不需要settings。确保您的新应用确实列在settings.INSTALLED_APPS中。
由于您在开发服务器上,可能您丢失了静态文件URL。请确保它位于urls.py的末尾:

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

这将为任何appname/static/中的所有文件添加URL路径/static/
此外,如果在使用开发服务器时有多个目录(不是appname/static/)要Map到URL路径,则可以使用static()添加,如下所示

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

tkclm6bt2#

在我的例子中,我在每个应用程序中都有静态文件夹,但模板中的/static/media没有从该应用程序中拾取图像,从而引发404。
我最初做的事情是,我在www.example.com和django文档中放置了static_url = "/static/"settings.py,他们提到放置"static/",当我进行此更改时,它工作正常
Django文档= https://docs.djangoproject.com/en/4.1/howto/static-files/

相关问题