我在Heroku上有一个Django应用程序.我对静态文件有一些问题(它们在一个Heroku environment中加载,而不是另一个),所以我try 了debug命令建议的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 repo中是否真的在根级别有一个目录"静电",我都会收到这个错误(这两种方法都进行了测试).

有什么 idea 吗?

推荐答案

它正在查找设置旁边名为"static"的文件夹.py,即在项目文件夹中,而不是在git回购的根目录下.

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设置,直到需要为止.

Django相关问答推荐

升级到4.2时,获取默认文件存储/存储是互斥的

如果字段为空,则 Unique_together 不起作用.怎么约束呢?

Django获取具有值的相关对象的计数并将其添加到注释中

QuerySet对象在bulk_update中没有属性pk

Django 身份验证系统修改

恢复 Django 1.7 RemoveField 迁移

直接在模型类上使用 Django 管理器与静态方法

Django - 强制执行 ManyToManyField 唯一项

将网络测功机添加到 Heroku django 应用程序时如何克服Coudn't find that formation错误?

如何在终端中切换 Python 版本?

django npm 和 node 包架构

Django rest-auth allauth 注册,带有邮箱、名字和姓氏,没有用户名

如何使用 django 发送 POST 请求?

使用 Python / Django 的 Google API 示例的 Oauth

django 有条件地过滤对象

有 Django List View 模型排序吗?

__init__() 得到了一个意外的关键字参数user

Django - 配置不当:模块django.contrib.auth.middleware

为什么我的 Django 单元测试不知道安装了 MessageMiddleware?

django.core.servers.basehttp.FileWrapper 在 Django 1.9 中消失