2012-11-24 57 views
5

我剛剛嘗試從.tpl文檔引用我的樣式表時遇到了問題。 我的python,模板和css文檔都在同一個目錄下,但是當我使用CMD加載頁面到「localhost:8080」時,它顯示了沒有應用樣式的模板。無法在python加載的模板中引用css樣式表

在我的模板文件index.tpl裏我已經referenceed 3個樣式表:

<link rel="stylesheet" type="text/css" href="demo.css" /> 
<link rel="stylesheet" type="text/css" href="style.css" /> 
<link rel="stylesheet" type="text/css" href="animate-custom.css" /> 

我的Python文件輸出模板:index.py:

from bottle import route,template,debug,run 
import sqlite3 

@route('/') 
def player(): 
    return template('index.tpl') 

debug(True) 
run(reloader=True) 
+0

檢查我的其他答案:https://stackoverflow.com/a/45761391/3129414 – arsho

回答

8

我沒有使用過的瓶子,但大多數Web框架都要求您將css/js/images放入特定目錄(通過配置設置)。通常它被稱爲「靜態」或類似的東西。

我敢打賭,如果你試圖直接在瀏覽器加載這些CSS文件:

http://localhost:8080/demo.css 

你會得到一個404

您有它目前設立的方式是你想什麼爲傳統的PHP/CGI的東西做 - 你的Web服務器正在尋找磁盤上的文件並提供服務。框架通常不會像那樣工作 - 您設置了路由規則。

你用@route('/')裝飾器 - 通過設置它,你告訴瓶子「任何對http:// localhost:8080 /的請求都應該運行播放器函數並返回它生成的任何內容。注意你還沒有爲你的css文件設置任何規則。

另一種可能性是您沒有在HTML中正確引用CSS文件。如果直接加載CSS文件時沒有404,請發佈HTML,我們可以看一下。

編輯:在瓶子裏的文檔發現這一點:

http://bottlepy.org/docs/dev/tutorial.html#routing-static-files

靜態文件,如圖像或CSS文件不會被自動提供。你必須添加路由和回調來控制哪些文件得到服務和在哪裏可以找到他們:
from bottle import static_file 
@route('/static/<filename>') 
def server_static(filename): 
    return static_file(filename, root='/path/to/your/static/files') 
+0

感謝您的快速回應,爲我工作,謝謝你 – Zanmato