6

我是使用 Python 的新手,在尝试从 .tpl 文档中引用我的样式表时遇到了问题。我的 python、模板和 css 文档都在同一个目录中,但是当我使用 CMD 将页面加载到“localhost:8080”时,它会显示没有应用样式的模板。

在我的模板文档 index.tpl 中,我引用了三个样式表:

<link rel="stylesheet" type="text/css" href="demo.css" />
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="animate-custom.css" />

我的python文件输出模板:index.py:

from bottle import route,template,debug,run
import sqlite3

@route('/')
def player():
    return template('index.tpl')

debug(True)
run(reloader=True)
4

1 回答 1

8

我没有使用过 bottle,但大多数 Web 框架都要求您将 css/js/images 放在特定的目录中(通过配置设置)。通常它被称为“静态”或类似的东西。

我敢打赌,如果您尝试直接在浏览器中加载这些 CSS 文件:

http://localhost:8080/demo.css 

你会得到一个404。

您当前设置它的方式是您对传统 PHP/CGI 东西所做的 - 您的 Web 服务器正在磁盘上查找文件并为它们提供服务。框架(通常)不会那样工作 - 您设置路由规则。

你用@route('/') 装饰器做到了——通过设置它,你告诉瓶子“对 http://localhost:8080/ 的任何请求都应该运行播放器函数并返回它生成的任何内容。” 请注意,您没有为您的 css 文件设置任何规则。

另一种可能性是您没有在 HTML 中正确引用 CSS 文件。如果您在直接加载 CSS 文件时没有收到 404,请发布 HTML,我们可以查看一下。

编辑:在瓶子文档中找到了这个:

http://bottlepy.org/docs/dev/tutorial.html#routing-static-files

图像或 CSS 文件等静态文件不会自动提供。您必须添加路由和回调来控制提供哪些文件以及在哪里找到它们:
from bottle import static_file
@route('/static/<filename>')
def server_static(filename):
  return static_file(filename, root='/path/to/your/static/files')
于 2012-11-24T17:15:27.020 回答