首页 > 解决方案 > Django 的 collectstatic 忽略 Heroku 环境中的文件夹

问题描述

我正在构建一个 Django+Vue 单体,我试图实现的发布管道假设将 Vue 前端构建到 Django 应用程序的静态文件夹中,运行collectstatic并启动服务器。静态文件通过 WhiteNoise 提供。

它在我的机器上完美运行。构建的文件夹最终在收集的静态文件目标中,并且其内容得到很好的服务:

应用程序的静态文件夹收集的静态文件

staticfiles但是,当托管在 Heroku 上时,除了这个内置的动态文件夹之外,其他所有内容都会被收集,即使它存在于应用程序的文件夹中,它也不会最终出现static。我确保执行顺序正确,甚至collectstatic在确保成功构建文件夹后手动运行。

您可能已经注意到,我在 .gitignore 中有这个文件夹,但我尝试从那里删除它,但无济于事。

这种奇怪行为的原因可能是什么?

ps 将 DEBUG 设置为 True 并通过 Django 的开发服务器提供静态文件会产生一个工作应用程序,这再次证明文件位于正确的位置。

标签: djangoherokudjango-staticfileswhitenoise

解决方案


听起来您正在动态构建该目录是问题所在。您可能必须创建一个自定义构建包来说明该过程。或者有一个创建它的发布阶段操作。


推荐阅读