我有一個測試功能,看起來像這樣:瓶路由添加CSS文件
@route('/name/')
@route('/name/<something>')
# argument passed and two routes
def name(something="nothing written"):
print 'arg:',something
return template('resp',something=something)
模板resp.tpl:
%rebase('base.tpl',something=something)
<p>you wrote {{something}}</p>
模板base.tpl
...
<link href="bootstrap.min.css" rel="stylesheet" type="text/css">
...
% if defined('base'):
<p>base.tpl overriden</p>
{{!base}}
% else:
<p>base not overriden</p>
% end
和我靜態文件功能:
@route('<filename:re:.*\.css>')
def css(filename):
print "css:",filename
return static_file(filename,root='./static/css',mimetype='text/css')
,但在Firefox與「http://localhost:8080/name/jonas」進行測試時,我得到這個:
127.0.0.1 - - [12/Apr/2015 11:25:00] "GET /name/jonas HTTP/1.1" 200 1334
arg: bootstrap.min.css
127.0.0.1 - - [12/Apr/2015 11:25:00] "GET /name/bootstrap.min.css HTTP/1.1" 200 1346
arg: bootstrap.min.js
127.0.0.1 - - [12/Apr/2015 11:25:00] "GET /name/bootstrap.min.js HTTP/1.1" 200 1345
的問題是,我的函數試圖加載我的CSS作爲第一個電話之後,第二個參數實際上是不加載的CSS。我查看了所有文檔,但我找不到解決方案。有什麼建議麼?
我試過了解決方案,但得到這個錯誤信息: RouteBuildError:(「這個名字沒有路線」,「靜」) 此外,我不得不進口瓶放入我的模板:從瓶進口瓶 % <鏈路HREF = {{瓶()。GET_URL(routename = '靜態',文件名= 'bootstrap.min.css')}}」的rel = 「樣式表」 類型= 「文本/ CSS」> othervise它doesen」牛逼認識GET_URL。 –
遺憾的混亂,我的回答應該是你的答案下面 –
嘗試將靜態文件分離像CSS,從項目的根imgaes。而你並不需要導入模板布特爾類。您可以定義任何功能在你的模板中,像這樣'bottle.SimpleTemplate ['defaults'] =你r_function'並在您的模板中調用它 – ayb