Whitenoise 似乎无法帮助图像在 heroku 中显示
Whitenoise doesn't seem to help images to show up in heroku
我收到图片的 404 错误。
https://example.herokuapp.com/images/IMG_2060.JPG 404 (Not Found)
这是我的目录树
directory1
|
|-- manage.py
|
|-- build/
| |
| |--static/
| .
| .
|
|-- static/
. |
. |--images/
. .
. .
我想看的图片在directory1/static/images/.
设置
INSTALLED_APPS = [
'whitenoise.runserver_nostatic',
...
]
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware',
....
]
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'build/static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
MEDIA_URL = '/images/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images')
whitenoise 版本是 5.2.0。我将此应用程序部署到 heroku。一切正常,除了图像。我错过了什么吗?
提前致谢! :)
Django 的静态文件处理可能有点混乱。
STATIC_ROOT 应该是一个空目录,Django 将您的静态文件 复制到 以备服务。这是由 Heroku 自动 运行 collectstatic
命令完成的。
您希望它从复制文件的目录应该在STATICFILES_DIRS
.
中列出
因此,如果您像这样更改设置,它应该会起作用:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'build/static'),
os.path.join(BASE_DIR, 'static'),
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
我收到图片的 404 错误。
https://example.herokuapp.com/images/IMG_2060.JPG 404 (Not Found)
这是我的目录树
directory1
|
|-- manage.py
|
|-- build/
| |
| |--static/
| .
| .
|
|-- static/
. |
. |--images/
. .
. .
我想看的图片在directory1/static/images/.
设置
INSTALLED_APPS = [
'whitenoise.runserver_nostatic',
...
]
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware',
....
]
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'build/static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
MEDIA_URL = '/images/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images')
whitenoise 版本是 5.2.0。我将此应用程序部署到 heroku。一切正常,除了图像。我错过了什么吗?
提前致谢! :)
Django 的静态文件处理可能有点混乱。
STATIC_ROOT 应该是一个空目录,Django 将您的静态文件 复制到 以备服务。这是由 Heroku 自动 运行 collectstatic
命令完成的。
您希望它从复制文件的目录应该在STATICFILES_DIRS
.
因此,如果您像这样更改设置,它应该会起作用:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'build/static'),
os.path.join(BASE_DIR, 'static'),
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')