Linux.Heroku Django.收集静态只读文件系统



我需要了解linux的人的帮助。我无法将我的静态文件推送到Heroku(我正在尝试使用whiteoise,而不是Amazon S3或任何CDN)。错误很简单,当我试图推到heroku时,我得到:

 Preparing static assets
       Running collectstatic...
       Traceback (most recent call last):
       OSError: [Errno 30] Read-only file system: '/assets'

因此,我无法运行collectstatic,因为我没有权限。如果我执行sudo git push heroku master,我会得到另一个错误:Permission denied (publickey),我想这是因为"sudo"使用了不同的SSH密钥。

我尝试过从文件管理器更改文件夹的权限,也尝试过从bash:

sudo chmod 777 -R static

static是父文件夹:static/assets。

所以。。。我该如何解决这个问题?任何帮助都将不胜感激。

我认为问题不在于将内容推送到Heroku。您正试图将资产保存到虚拟机上的根文件夹中,这是不允许的。

传统上,使用Heroku,您会将静态资产目录设置为类似staticfiles的目录(而不是/staticfiles/assets)。当Heroku将应用程序部署到其虚拟机(它称之为"dynos")时,它在自己的小目录(我认为它是/app)中工作,因此您在settings.py文件中指定的所有目录都是相对于该目录的。

尝试将静态文件的根目录设置为不带斜线的staticfilesassets,这应该有效。

最新更新