【问题标题】:Heroku & Django: "OSError: No such file or directory: '/app/{myappname}/static'"Heroku & Django:“OSError:没有这样的文件或目录:'/app/{myappname}/static'”
【发布时间】:2013-10-19 20:25:24
【问题描述】:

我在 Heroku 上有一个 Django 应用程序。我在使用静态文件时遇到了一些问题(它们正在加载一个 Heroku environment 而不是另一个),所以我尝试了推荐的调试命令 here

$ heroku run python manage.py collectstatic --noinput
Running `python manage.py collectstatic --noinput` attached to terminal... up, run.8771
OSError: [Errno 2] No such file or directory: '/app/{myappname}/static'

这是我的 settings.py,与 Heroku 推荐的相同:

import os
import os.path

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

无论我的 Git 存储库中的根级别是否真的有一个“静态”目录(两种方式都进行了测试),我都会收到错误消息。

有什么想法吗?

【问题讨论】:

  • 你能发布你的 INSTALLED_APPS 吗?

标签: python django git heroku django-staticfiles


【解决方案1】:

它正在寻找一个名为“static”的文件夹,它位于 settings.py 旁边,即在项目文件夹中,而不是在 git repo 的根目录中。

git root/
git root/{app name}
git root/{app name}/settings.py
git root/{app name}/static/         <- this is what you're missing

请注意,空文件夹不会被 git 跟踪,所以如果它是空的,你必须在其中放置一个空白文件。或者,删除STATICFILES_DIRS 设置,直到您需要它为止。

【讨论】:

  • 我在 Heroku 网站上遇到了同样的问题,唯一缺少的是一个空白的 .gitignore 文件!
  • 几乎没有什么对我有用,除了最后一项“或者,删除 STATICFILES_DIRS 设置,直到你需要它”,它使一切工作顺利。 Heroku 在这条线消失之前不会“收集静态”。
  • 完美的男人,这就是我遇到的问题。我只是不知道该把该死的模板放在哪里。
  • 我喜欢答案的最后一部分。 ...remove the STATICFILES_DIRS setting until you need it. 例如在开发服务器中并不需要它。
【解决方案2】:

我也遇到了同样的问题,下面是对我有用的解决方案:

我变了:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

到:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'myappfolder/static'),
)

【讨论】:

  • 这也适用于我,虽然我的路径需要向上移动一个目录:os.path.join(BASE_DIR, '../myappfolder/static')
  • 它们都不适合我,它是,“myappfolder”是指你的应用在 heroku 上的名称或只是 myappfolder
【解决方案3】:

@joerick 上面的回答就是问题。但是,如果您不想放置另一个“静态”文件夹(git root/{your app}/static),您可以考虑更改最初由 django-admin makeproject 提供的 BASE_DIR 变量:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

这只是(git root/)目录

【讨论】:

    猜你喜欢
    • 2018-12-30
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 2019-05-31
    • 2017-01-24
    • 1970-01-01
    • 2013-07-28
    相关资源
    最近更新 更多