繁体   English   中英

静态文件未在Python中的Bottle上提供

[英]Static files not being served on Bottle in Python

我正在尝试设置一个应用程序,该应用程序需要一个模板HTML文件并对其进行实时修改。 它在一定程度上可以正常工作,但是页面上的图像和CSS无法提供,并且在请求控制台时出现HTTP 500错误。

这是我的目录结构

Server/
    assets/
        css/
            img/
            jquery.css
            kickstart.css
            zellner.css
        js/
            jquery.min.js
            kickstart.js
        style.css
        tb_404.png
        tbrun1.png
        tbservers.png
    403.html
    404.html
    500.html
    appid
    index.html
    maintenance.html
    server.log
    server.py

这就是我在server.py中设置路由的方式:

@error(403)
def error403(error):
    return static_file("403.html")

@error(404)
def error404(error):
    return static_file("404.html")

@error(500)
def error500(error):
    return static_file("500.html")

@route('assets/<filepath:path>')
def server_static(filepath):
    return static_file(filepath, root='assets')

在我的html文件中,文件是这样链接的:

<script type="text/javascript" src="assets/js/jquery.snippet.min.js"></script>

可能是由于静力学存在于资产/的子目录中吗? 还是我完全误解了如何使用static_file?

这是我在Python控制台上遇到的错误类型:

[07/May/2012 10:51:05] "GET /tempus/23 HTTP/1.1" 200 4501 <h1>Critical error while processing request: /tempus/assets/js/jquery.snippet.min.js</h1>

我不明白为什么它路由到/ tempus / assets / ...

有什么帮助吗? 谢谢!

我在处理静态文件时也遇到了问题。 这是我的解决方案:

@route('/static/:filename#.*#')
def send_static(filename):
    return static_file(filename, root='./static/')

以及当您想访问静态文件时 模板文件:

@route('/')
def index():
    output = template('static/index.tpl')
    return output

您必须将文件的完整路径放在root =中,这取决于程序的运行位置。 看一下这个: http : //bottlepy.org/docs/dev/tutorial.html?highlight=static_file#tutorial-static-files

您的@route装饰器对于serve_static不正确。

它应该显示为@route('/ assets /')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM