【问题标题】:image doesn't load when using template inheritance使用模板继承时图像不加载
【发布时间】:2013-09-28 21:54:22
【问题描述】:

父模板中的图像不会加载到子模板中,而是显示“alt”。 结构是这样的。

“base.html”

<DOCTYPE! html>
<html>
    <head>
    </head>
    <body>
        <div class = "x">
            <image src="x.jpg" alt="x">
        </div>
        <div class = "y">
            <a src="...">y</a>
        </div>
        <div id = "content">
            {% block content %}
            {% endblock %}
        </div>
    </body>
</html>

“child.html”

{% extends "base.html" %}
    {% block content %}
        ---replaced content
    {% endblock %}

内容,y 正常显示在子级中,但 x(图像)显示 alt 文本并且无法加载图像。只有当图像的 src 不是 url 时才会发生这种情况,如果它显示正常的话。

我正在使用 jinja2 模板引擎。

【问题讨论】:

    标签: html google-app-engine jinja2 template-engine


    【解决方案1】:

    当我将图像添加到包含除任何目录之外的所有静态文件的目录并将此目录路径添加到 src 时,问题就解决了。 发生这种情况是因为我像这样配置了 app.yaml 处理程序

    handlers:
    - url: /static
      static_dir: static
    

    所以每当一个 url 以 '/static' 开头时,它都会从这个目录中获取它并将其视为静态文件,否​​则不会。

    这与这个问题非常相似 Jinja not rendering css/images in sub-directories 与 jinja2 或其继承无关。

    【讨论】:

    • 底线,访问图像(和其他资源)时使用绝对 URL。
    • 你的意思是在配置文件中?如果是,其中的绝对 URL 与相对 URL 是什么(不是一般情况下)?
    • 我的意思是在 HTML 中。 src="x.jpg"src="/x.jpg" 表示不同的东西,具体取决于请求。在大多数情况下,您希望使用后者。
    猜你喜欢
    • 2015-05-14
    • 1970-01-01
    • 2015-04-18
    • 2011-11-08
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2015-12-04
    相关资源
    最近更新 更多