【问题标题】:Linux. Heroku-Django. Collectstatic read-only file systemLinux。 Heroku-Django。收集静态只读文件系统
【发布时间】:2015-04-11 06:42:10
【问题描述】:

我需要了解 linux 的人的帮助。我无法将我的静态文件推送到 Heroku(我正在尝试使用白噪声,而不是 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。

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

【问题讨论】:

    标签: python linux django heroku chmod


    【解决方案1】:

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

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

    尝试将静态文件根目录设置为staticfilesassets,不带斜线,这样应该可以。

    【讨论】:

      猜你喜欢
      • 2013-07-16
      • 2016-02-02
      • 1970-01-01
      • 2018-10-05
      • 2014-01-25
      • 2010-12-22
      • 2011-03-25
      • 2015-12-22
      相关资源
      最近更新 更多