1

我正在尝试使用从Initializr下载的样板和bottle.py。我显然做错了,因为当我只是尝试在index.html不使用任何样式表的情况下加载站点渲染时,我在浏览器控制台中收到以下错误:

Use of getUserData() or setUserData() is deprecated.  Use WeakMap or element.dataset instead. requestNotifier.js:52
The stylesheet http://localhost:8080/css/normalize.min.css was not loaded because its MIME type, "text/html", is not "text/css". localhost:8080
The stylesheet http://localhost:8080/css/main.css was not loaded because its MIME type, "text/html", is not "text/css". localhost:8080
SyntaxError: syntax error modernizr-2.6.2-respond-1.1.0.min.js:1
SyntaxError: syntax error plugins.js:1
SyntaxError: syntax error

我的应用程序如下所示:

import bottle  # Web server
from bottle import run, route, static_file, error, template  # import request


@route('/')
def index():
    return static_file('index.html', root='./html/')

@route('./css/<filename>')
def server__static(filename):
    return static_file(filename, root='./css/')

if __name__ == '__main__':
    # To run the server, type-in $ python server.py
    bottle.debug(True)  # display traceback
    run(host='localhost', port=8080, reloader=True)

样式表是index.html这样调用的:

    <link type="text/css" rel="stylesheet" href="css/normalize.min.css">
    <link type="text/css" rel="stylesheet" href="css/main.css">

我的基本文件夹结构是(剪切的 js 文件夹等):

bottle_test.py
- html
      index.html
      - css
           main.css
           normalize.min.css

我知道瓶子本身并不提供静态文件,我确实玩弄了路由server-static并添加、更改和删除了mimetype参数,但无法让它工作。

整个样板文件位于html文件夹中,应用程序确实找到了index.html. 我在 Firefox 和 Chrome 中试过这个。如果重要的话,我在 Win 8.1 和 anaconda 的 python 2.7 上。我究竟做错了什么?

4

1 回答 1

2

你的路径似乎是错误的。CSS 路由不应该以 a 开头.,似乎它会干扰 Bottle 解析它的方式。并且您的 CSSstatic_file根目录没有正确反映css相对于工作目录的文件夹位置。

这应该可以正常工作:

@route('/css/<filename>')
def server__static(filename):
    return static_file(filename, root='./html/css')
于 2014-07-13T10:59:39.247 回答