在我的django生产网站上破碎的图像。为什么?

时间:2014-11-01 14:40:15

标签: python django heroku path media

我只是使用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;永远感谢。

2 个答案:

答案 0 :(得分:0)

Django仅在调试模式下提供静态文件。情况和解决方案在文档中解释:https://docs.djangoproject.com/en/1.4/howto/static-files/

答案 1 :(得分:0)

您需要在生产箱上运行collectstatic。