尽管我使用的是static_file方法,但我的bottle web应用程序并没有提供我的main.css文件。
app.朋友
from bottle import *
from xml.dom import minidom
@route('/')
def index():
return template("index")
@route('/glossaryXML')
def glossary():
doc_def = minidom.parse("table_definitions.xml")
terms = doc_def.getElementsByTagName("str_term")
defins = doc_def.getElementsByTagName("str_definition")
return template("list", terms=terms, defins=defins)
@route('<filename>.css')
def stylesheets(filename):
return static_file(filename, root='static')
@error(404)
def fourofour(error):
return "Error"
run(host='localhost', port=8080, debug=True)
我试图访问的页面是索引页面,index.tpl就是这样的
<!DOCTYPE HTML>
<html>
<head>
<title>ICT Applications Glossary</title>
<link type="text/css" href="main.css" rel="stylesheet">
</head>
<body>
It works
</body>
</html>
我的CSS文件位于名为“static”的文件夹中,该文件夹位于我的根文件夹中
而是像这样指定静态路由
@route('/<filename:path>')
def send_static(filename):
return static_file(filename, root='static/')
这将为静态目录中的任何文件提供服务,但不仅仅是css。
使样式表具体化
@get('/<filename:re:.*\.css>')
def stylesheets(filename):
return static_file(filename, root='static/')
注意:对于后一个选项,您可以将样式表放在他们自己的目录'static / css'或只是'css'中,并将它们与其他静态资源(脚本,图像等)分开来执行此操作,只需将root
参数指定为目录例如`根= '静态/样式表'。
我可以看到两个问题:
@route('/<filename>.css')
stylesheets()
参数中传递给filename
,例如而不是main.css
,它将是main
。将代码更改为:
@route('/<filename>.css')
def stylesheets(filename):
return static_file('{}.css'.format(filename), root='static')
或者......将main.css文件重命名为main.tpl,使用<style>
和</style>
将其重命名,将其与其他模板一起移动到/ views目录中,然后只需添加到返回行的开头:
return (template ("main"), template ("list", terms=terms, defins=defins))