我需要了解linux的人的帮助。我无法将我的静态文件推送到Heroku(我试图使用whitenoise而不是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。
那么......我怎么解决这个问题?任何帮助将不胜感激。
答案 0 :(得分:3)
我认为问题不在于将内容推送到Heroku,特别是。您正在尝试将资源保存到虚拟机上的根文件夹中,这是您不允许的。
传统上使用Heroku,您可以将静态资源目录设置为staticfiles
(不是/staticfiles
或/assets
)。当Heroku将应用程序部署到其虚拟机(它称之为“dynos”)时,它在自己的小目录中运行(我认为它是/app
),因此您在settings.py文件中指定的所有目录都是相对于那个目录。
尝试将静态文件根目录设置为staticfiles
或assets
而不使用斜杠,这应该可以。