使用Google App Engine在HTML和CSS上呈现模板

时间:2012-06-05 10:39:04

标签: python css google-app-engine django-templates

我目前正在GAE上托管我的网站。 它已经有一段时间没有更新,所以现在,我正在尝试刷新它:D

为了做到这一点,我尝试使用Python和WSGI,WebAPP2和Render.Template来使用MVC模型。

除了CSS部分外,一切顺利。

实际上,我无法使用GAE(django)方法渲染CSS的某些部分。 我的Python控制器正在调用HTML文件并正确地用dict()值替换变量。

但是现在,为了能够只限制CSS文件量,我正在努力做同样的事情。

不幸的是,我不知道我打算如何调用CSS文件。

我正在照常使用我的HTML调用我的CSS:

<link rel="stylesheet" media="screen" type="text/css" href="/assets/css/struct/index.css">

尝试动态渲染文件的这一部分:

header#navigation{
height:auto;
min-height:480px;
width:100%;
min-width:100%;
background-image:url('/assets/img/content/{{content_cat_name}}/cat_img.jpg');
background-repeat:no-repeat;
background-position: left top;
background-size:contain;
background-color:#efefef;
}

然后我的python代码会调用所有内容:

class URIHandler(webapp2.RequestHandler):
def get(self, subdomain, page):
    name = subdomain
    pattern = os.path.join(os.path.dirname(__file__), '../views' ,'index.html')        
    template_values = {
            'content_cat_name':name,
            'cat_menu_title':name,
            'cat_menu_text':name,
    }

    self.response.out.write(template.render(pattern, template_values))

所以,如果有人可以帮我正确调用我的CSS并使用我的python脚本替换变量,我会非常高兴:D 提前谢谢。

2 个答案:

答案 0 :(得分:2)

template.render只能替换您在path参数(第一个参数)中指定的文件中的标记。您正在从静态目录中提供.css文件,因此不会发生令牌替换,因为该文件未通过该代码传递。

您可以在index.html文件中内嵌包含标记的CSS部分。

答案 1 :(得分:0)

我有我认为是同样的问题。我发现这个GAE documentation非常有帮助。简而言之,您需要进入app.yaml文件创建一个新的处理程序:

url: /foldername
  static_dir: foldername

然后在你的链接标签中:

href="foldername/index.css"