Jinja不在子目录中渲染css / images

时间:2012-09-15 03:05:43

标签: google-app-engine jinja2

我正在使用Jinja2和GAE,我正在使用辅助函数来呈现HTML文件。当我尝试渲染嵌套在子目录(Gamification)中的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>

1 个答案:

答案 0 :(得分:1)

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

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

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

(当然,将“templates”替换为css和js文件夹所在的子目录)