我只是使用Heroku制作我的网站,我的媒体图像被破坏了一个奇怪的问题。 这是我在Heroku上的网站结构。
-- app
-- manage.py
-- mysite
-- settings
-- __init__.py
-- base.py
-- production.py
-- static
-- media
-- product
-- images
--
-- static_dirs
-- static_root
在我的app / mysite / settings / init .py
中from .base import *
try:
from .local import *
live = False
except:
live = True
if live:
from .production import *
和我的base.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static', 'media')
STATIC_ROOT = os.path.join(BASE_DIR, 'static', 'static_root')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static', 'static_dirs'),
)
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
在我的production.py中,我注释如下。
# Static asset configuration
# import os
# BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# STATIC_ROOT = 'staticfiles'
# STATIC_URL = '/static/'
# STATICFILES_DIRS = (
# os.path.join(BASE_DIR, 'static'),
# )
最后,我运行了服务器,我的页面上显示的图像仍然破碎。 当我通过“谷歌检查元素”仔细查看图像时,我仍然可以看到可能正确的路径,如下所示。
<img class="img-responsive" src="/media/products/images/aws.png">
但是当我看到我的/ static / media / products / images /文件夹时,只在开发状态中创建了图像,而不是我刚在生产网站上创建的图像。 (aws.png)
作为django开发的初学者,即使经过几个小时的谷歌搜索,也很难找到答案。
请让我睡觉&amp;永远感谢。
答案 0 :(得分:0)
Django仅在调试模式下提供静态文件。情况和解决方案在文档中解释:https://docs.djangoproject.com/en/1.4/howto/static-files/
答案 1 :(得分:0)
您需要在生产箱上运行collectstatic。