python – Linux. Heroku的,Django的. Collectstatic只读文件系统

我需要了解
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我得到另一个错误:权限被拒绝(publickey)我猜这是因为’sudo’使用不同的SSH密钥.

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

sudo chmod 777 -R static

static是父文件夹:static / assets.

那么……我怎么解决这个问题?任何帮助将不胜感激.

最佳答案 我不认为问题是将内容推送到Heroku,特别是.您正在尝试将资源保存到虚拟机上的根文件夹,这是您不允许的.

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

尝试将静态文件根目录设置为静态文件或没有斜杠的资产,这应该可行.

点赞