在 django 的几个页面中,图像没有从 base.html 显示

Posted

技术标签:

【中文标题】在 django 的几个页面中,图像没有从 base.html 显示【英文标题】:Image is not getting displayed from base.html in few pages in django 【发布时间】:2016-09-15 23:05:15 【问题描述】:

我有一个 base.html,我也将它扩展到其他页面。在少数页面中显示图像,但在少数页面中不显示。除了图片之外,还显示了 header 、 section 之类的所有内容。

% load staticfiles %
some more --like header , section 
<footer>
<div id="footer">
    % block footer %
        <a href="https://github.com/shanker4999"> <img src ="../../static/blog/images/git.png"></a>
        <p>&copy; 2016 shankar.</p>
    % endblock %
</div>

我的模板文件

% extends 'blog/base.html' %


% block content %
<h1>Articles for  year </h1>

% for article in article_list %
<h4><a href="/blog/article.id/"> article.headline </a></h4>
<h5>Posted by <strong> article.reporter </strong>
                 on article.pub_date|date:"F j, Y"</h5><hr/>
% endfor %
% endblock %

网址` 从 django.conf.urls 导入 url 从 。导入视图

urlpatterns = [
    url(r'^$',views.index,name='index'),
    url(r'article/(?P<year>[0-9]4)/$', views.year_archive, name='year_archive'),
    url(r'article/(?P<year>[0-9]4)/(?P<month>[0-9]2)/$', views.month_archive, name='month_archive'),
    url(r'(?P<article_id>[0-9]+)/$',views.article_detail,name='article_detail'),
    url(r'^comment/(?P<article_id>[0-9]+)/$' ,views.comment,name='comment'),
    url(r'^contact',views.contact,name='contact'),

]` 意见

ef year_archive(request,year):
#year=str(pub_date)[0:4]
year=year
try:
    article_list = Article.objects.filter(pub_date__year=year)
except Article.DoesNotExist:
    raise Http404("Article does not Exists")
context = 'year':year, 'article_list':article_list
return render(request, 'blog/year_archive.html',context)

【问题讨论】:

【参考方案1】:

你正在加载staticfiles,但你从未真正使用它,你应该使用static模板标签

"../../static/blog/images/git.png"

应该是

% static 'blog/images/git.png' %

你也应该使用url模板标签..

【讨论】:

【参考方案2】:

这是因为您没有使用正确的 src。您应该让静态函数处理静态文件。当 url 更改时,../../ 将不再正确,具体取决于路径。

您应该在 settings.py 文件中配置静态目录,然后像这样引用您的图像:

<img src ="% static 'blog/images/git.png' %"></a>

【讨论】:

以上是关于在 django 的几个页面中,图像没有从 base.html 显示的主要内容,如果未能解决你的问题,请参考以下文章

django上的几个页面(在不同的应用程序中)相同的块

使用 Django 在 Heroku 上接收带有图像的特定页面的服务器错误 500(由 WhiteNoise 提供静态服务)

Web网站的几个并发量级

Web网站的几个并发量级

django 本地和生产的几个设置

没有最大长度的 Django CharField