これに関するすべての質問を確認し、ボトルのチュートリアルを確認し、ボトルの Google グループのディスカッションを確認しました。私の知る限り、すべて正しく行っています。しかし、どういうわけか、CSS ファイルを正しくロードできません。静的ファイルで 404 が表示されますhttp://localhost:8888/todo/static/style.css
が、これは見つかりません。以下のディレクトリ構造によると、これは当てはまりません。ボトルのバージョン 0.11 (不安定) を使用しています。不足しているものはありますか、それともボトルのバグですか?
私のディレクトリ構造:
todo/
todo.py
static/
style.css
私の todo.py:
import sqlite3
from bottle import Bottle, route, run, debug, template, request, validate, static_file, error, SimpleTemplate
# only needed when you run Bottle on mod_wsgi
from bottle import default_app
app = Bottle()
default_app.push(app)
appPath = '/Applications/MAMP/htdocs/todo/'
@app.route('/todo')
def todo_list():
conn = sqlite3.connect(appPath + 'todo.db')
c = conn.cursor()
c.execute("SELECT id, task FROM todo WHERE status LIKE '1';")
result = c.fetchall()
c.close()
output = template(appPath + 'make_table', rows=result, get_url=app.get_url)
return output
@route('/static/:filename#.*#', name='css')
def server_static(filename):
return static_file(filename, root='./static')
私のHTML:
%#template to generate a HTML table from a list of tuples (or list of lists, or tuple of tuples or ...)
<head>
<link href="{{ get_url('css', filename='style.css') }}" type="text/css" rel="stylesheet" />
</head>
<p>The open items are as follows:</p>
<table border="1">
%for row in rows:
<tr style="margin:15px;">
%i = 0
%for col in row:
%if i == 0:
<td>{{col}}</td>
%else:
<td>{{col}}</td>
%end
%i = i + 1
%end
<td><a href="/todo/edit/{{row[0]}}">Edit</a></td>
</tr>
%end
</table>