【问题标题】:serve static files css and js via wheezy.template?通过 wheezy.template 提供静态文件 css 和 js?
【发布时间】:2014-01-22 15:03:26
【问题描述】:

我有这个主 html 模板:

<!DOCTYPE html>
<html>

<head>

    <meta charset="utf-8">

    <title>Start Bootstrap - SB Admin Version 2.0 Demo</title>

    <!-- Core CSS - Include with every page -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="font-awesome/css/font-awesome.css" rel="stylesheet">

    <!-- SB Admin CSS - Include with every page -->
    <link href="css/sb-admin.css" rel="stylesheet">
<!-- Core Scripts - Include with every page -->
    <script src="js/jquery-1.10.2.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/plugins/metisMenu/jquery.metisMenu.js"></script>

    <!-- SB Admin Scripts - Include with every page -->
    <script src="js/sb-admin.js"></script>

</head>

这是 test.py 文件:

from wheezy.template.engine import Engine
from wheezy.template.ext.core import CoreExtension
from wheezy.template.loader import FileLoader

T = ['where/project/folderbase/is']


engine = Engine(
    loader=FileLoader(T),
    extensions=[CoreExtension()]
)

master_template = engine.get_template(r'master.htm')

@route('/test')
def login_name():
    return master_template.render({})

我在模板和网页设计方面完全是 n00b。 假设我通过 localhost:port/test

上的任何 python Web 服务器(如烧瓶)运行它

什么都没有。

为什么? wheezy.template 中的 @path_for 是什么? 我需要包含@require(path_for) 或其他任何内容吗? 是否需要在 html 文件中提供静态文件以定义特定文件夹中的所有文件-> 'static'

或者可以从它们现在所在的位置访问它们,就像上面的代码一样?

【问题讨论】:

    标签: python css template-engine


    【解决方案1】:

    你有很多问题。即使你不再关心我也会回答......

    如果您已正确配置 Flask,并在路由/url 'test' 上提供该模板,则不会出现任何内容,因为您尚未在 html 中定义带有任何内容的 &lt;body&gt;

    在 wheezy.templates 中,您可以使用 @my_variable 语法访问局部变量/函数(即您使用 @ 符号作为前缀)。如果您想访问作为上下文的一部分传递给模板的变量,您需要首先要求它,@require(my_variable)。您的示例使用空字典作为上下文,因此没有变量可以访问/要求。

    path_for 是 wheezy.routing 的一部分,而不是 wheezy.templates。它用于获取命名路由的 url(即,您可以执行 @path_for('test'),它会返回 localhost:1234/test。只有在使用完整的 wheezy.web 框架(使用 wheezy.routing)时,使用 path_for 才有意义和 wheezy.templates)。Flask 将有自己的函数来执行此操作(我不确定它们是什么,我不使用 Flask)。您需要通过上下文将这些函数传递到模板中,然后 @要求他们使用它们(或为 wheezy.template 制作一些自定义扩展)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2015-09-12
      • 2012-12-16
      • 2019-01-22
      • 2015-04-08
      • 1970-01-01
      • 2011-01-16
      相关资源
      最近更新 更多