Django中的外部HTML文件

时间:2016-06-28 09:30:45

标签: html django external

我正在制作Django应用程序,我需要在模板中嵌入许多外部HTML文件。每个HTML文件都存储在自己的目录中,以及包含所有图像的子目录。文件结构:

Abstract1
    Pictures
        image1.png
        image2.png
   abstract1.html

我使用自定义模板标记进行嵌入(参见下文)。我的问题:HTML文件已加载,但链接的资源(例如img)无法正常工作(即它们未被显示)。 HTML文件使用相对网址,与django模板基本路径混合产生无效网址,但即使我使用硬编码绝对网址,问题仍然存在。我觉得我错过了一些明显的东西。是否有一些适当的(或不适当但有效的)方法来克服这种问题?

模板

{% load abstracts_extras %}

<!DOCTYPE html>
<html>
    <body style="margin-left:10px">
        <h2>{{abstract}}</h2>
        <b>Authors:</b><br/>
        <ul>
            {% for author in authors %}
                <li>{{author}}</li>
            {% endfor %}
        </ul>
        <p>
        <b>Title: </b>{{abstract.title}}
        <p>
        <hr>

        {% include_external filename|add:'.html' %}
    </body>
</html>

abstracts_extras

from django.template import Library

register = Library()

def include_external (url):
    url = 'file:///' + url
    import urllib2
    return urllib2.urlopen (url).read ()

1 个答案:

答案 0 :(得分:0)

如果我理解得很好,你的模板会加载但不会像img那样静态。 这将是一个配置错误。 你应该检查Django的settings.py和Apache的httpd.conf,并检查staticfiles是否正确配置。 您是否显示任何错误或仅加载图像(但没有错误)?