1

我正在将 Django (1.7.3) 与 zinnia 博客 (0.15.1) 一起使用,并且在渲染可以为博客条目添加的“插图图像”时遇到问题。

我有以下 urls.py 文件:

我的顶级目录 url conf

# -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^ecv/', include('extended_cv.urls',namespace="ecv")),
    url(r'^weblog/', include('zinnia.urls', namespace='zinnia')),
    url(r'^comments/', include('django_comments.urls')),
)

settins.py 文件:

# -*- coding: utf-8 -*-
** Snip**
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
TEMPLATE_DEBUG = True

# For using django.contrib.sites
SITE_ID = 2
# Application definition
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'pro',
    'extended_cv',
    'zinnia', # Added for zinnia blog usage
    'django.contrib.sites',# Added for zinnia blog usage
    'django_comments',# Added for zinnia blog usage
    'mptt',# Added for zinnia blog usage
    'tagging',# Added for zinnia blog usage
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

TEMPLATE_CONTEXT_PROCESSORS = ( 
    'django.contrib.auth.context_processors.auth', 
    'django.core.context_processors.i18n',
    'django.core.context_processors.request', 
    'zinnia.context_processors.version',  
)
** Snip**
USE_I18N = True
USE_L10N = True
USE_TZ = True
STATIC_URL = '/static/'

当我使用管理 UI 为 zinnia 创建条目时,当我添加图像时,没有出现错误,并且新条目被保存到数据库中而没有警告。然后图像出现在地址TopDir/upload/zinnia/date/of/publication/index_IKd2N0d.jpeg的服务器树文件中

但是,当我从博客应用程序中读取新条目时,我正确地看到了新条目,但看不到图像。此外,服务器输出以下错误: GET /weblog/2015/01/18/1st-entry/uploads/zinnia/2015/01/18/index_IKd2N0d.jpeg HTTP/1.1" 404 8922

我想这个问题调试起来有点复杂,如果您需要更多信息,我很乐意为您提供更多信息。

谢谢你。

4

1 回答 1

0

正如 Daniel Roseman 在评论中解释的那样,答案包括定义变量 MEDIA_URL 和 MEDIA_ROOT,并按照https://docs.djangoproject.com/en/1.7/howto/static-中的说明重写顶部 urls.py 文件文件/#serving-files-uploaded-by-a-user-during-development

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^ecv/', include('extended_cv.urls',namespace="ecv")),
    url(r'^weblog/', include('zinnia.urls', namespace='zinnia')),
    url(r'^comments/', include('django_comments.urls')),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

工作完成了。

于 2015-01-18T22:04:50.737 回答