首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cheetah #包含不工作

Cheetah #包含不工作
EN

Stack Overflow用户
提问于 2012-11-29 16:42:22
回答 1查看 664关注 0票数 0

#include似乎不工作,我得到一个"500内部服务器错误“。我尝试了不带include的相同代码,将所有代码放在一个文件中,它工作了。我正在使用web framwork Flask

header.tmpl

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>$title</title>

        #for $css in $css_sheets
        <link rel="stylesheet" href="../$css">
        #end for
        #for $js in $js_scripts
        <script src="../$js"></script>
        #end for
    </head>
    <body> 

home.tmpl

代码语言:javascript
复制
#include "header.tmpl"
<p id="x">HELLO</p> 
#include "footer.tmpl"

footer.tmpl

代码语言:javascript
复制
    </body>
</html> 

engine.py

代码语言:javascript
复制
from flask import Flask, redirect, request
from Cheetah.Template import Template

app = Flask(__name__)

css_list = ['css/main.css']
js_list = ['js/main.js']
default_title = 'Default Title'

namespace={
    'css_sheets' : css_list,
    'js_scripts' : js_list,
    'title' : default_title
}

@app.route('/')
def main_route():
    return redirect('/index')

@app.route('/index')
def index():
    namespace['title']= 'THIS IS THE INDEX'
    return render("cheetah/home.tmpl", namespace)

def render(template, context):
    """Helper function to make template rendering less painful."""
    return str(Template(file=template, namespaces=[context]))

if __name__ == "__main__":
    app.run()

我的第二个问题是关于header.tmpl中的$css和$js变量:

$css设置为'css/main.css‘的<link rel="stylesheet" href="../$css">正常工作

$css设置为'../css/main.css‘的<link rel="stylesheet" href="$css">失败,它将其读取为纯文本'$css’,而不是获取变量的值。

为什么会这样呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-29 19:01:03

问题是#include中使用的路径不是相对于调用它的模板(home.tmpl),而是python文件(engine.py),在本例中,这两个文件不在同一位置,所以程序没有找到我试图包含的文件。

代码语言:javascript
复制
../web/engine.py
../web/templates/home.tmpl
../web/templates/header.tmpl
../web/templates/footer.tmpl
../web/css/main.css
../web/js/main.js
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13621806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档