【问题标题】:Jinja not rendering css/images in sub-directoriesJinja 不在子目录中渲染 css/图像
【发布时间】:2017-06-15 18:24:59
【问题描述】:

我正在使用 Jinja2 和 GAE,并且正在使用辅助函数来呈现 HTML 文件。当我尝试渲染嵌套在子目录(游戏化)中的 HTML 文件时,Jinja 似乎没有提取 CSS 和图像文件。有谁知道我该怎么办?

我目前的YAML结构如下

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.app

libraries:
- name: webapp2
  version: "2.5.1"
- name: jinja2
  version: latest

我当前的目录结构是这样的。

Main directory
|
 -- main.py

|
 ----Templates
     |
      --Gamification
        |
         --index.html
           |
            --CSS
              |
               --1.css
           |
            --img
              |
               --1.jpef

main.py

jinja_environment = jinja2.Environment(loader=jinja2.FileSystemLoader(['Templates', 'Templates\Gamification']));
def import_html(self, address, val = {}):
    template = jinja_environment.get_template(address);
    self.write(template.render(val));

有问题的html文件如下:

<!DOCTYPE html>
<html>
  <head>
    <title>Gamification</title>
    <link href="css/bootstrap.css" rel="stylesheet">
  </head>

  <body>

<img src = "img/dan.jpeg" class = "img-rounded" />
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="js/bootstrap.js"></script>
</body>
</html>

【问题讨论】:

    标签: google-app-engine jinja2


    【解决方案1】:

    您似乎没有为 img 和 css 声明静态目录。
    类似:

    - url: /css
      static_dir: css
    

    【讨论】:

    【解决方案2】:

    是的,我遇到了同样的问题。你需要做这样的事情:

    - url: /.*/css
      static_dir: templates/css
    
    - url: /.*/js
      static_dir: templates/js
    

    (当然,将“模板”替换为您的 css 和 js 文件夹所在的任何子目录)

    【讨论】:

      猜你喜欢
      • 2011-05-21
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 2017-09-17
      相关资源
      最近更新 更多