2011-08-25 60 views
1

我正在學習web2py 1.98.2,所以問題是非常基本的。在靜態/ css文件夾我創建了以下內容basic.css文件:web2py鏈接到CSS

.auth_navbar { 
    top: 0px; 
    float: right; 
    padding: 3px 10px 3px 10px; 
} 

在的layout.html我:

<head> 
    ... 
    {{response.files.append(URL('static','css/base.css'))}} 
    ... 
</head> 
<body> 
    ... 
    {{try:}}{{=auth.navbar(action=URL('default','user'))}}{{except:pass}} 
    ... 
</body> 

控制器default.py具有非常簡單的代碼:

def index(): return dict(message="hello people") 

,最後是缺省的/ index.html的樣子:

{{extend 'layout.html'}} 
<h2>This is the default/index.html template</h2> 
{{#=BEAUTIFY(response._vars)}} 

所以,我運行的應用程序和index.html顯示爲預期。但是,CSS不起作用。 我預計在頁面的源代碼以下行:

<link href="/welcome/static/css/base.css" rel="stylesheet" type="text/css" /> 

,但它不存在。我錯過了什麼?

回答

3
{{response.files.append(URL('static','css/base.css'))}} 

上面的代碼只是將base.css添加到response.files列表中。 <link>標記由web2py_ajax.html模板生成,該模板包含在默認的layout.html中。因此,您需要確保web2py_ajax.html也包含在您的layout.html中,並且該base.css被添加到response.files 之前那。所以:

{{response.files.append(URL('static','css/base.css'))}} 
{{include 'web2py_ajax.html'}} 

注意,你的第一句是指basic.css,但你的代碼是指base.css - 確保你使用了正確的文件名(web2py的帶有自己的base.css)。

1

這有可能是你離開了:

{{include}} 

在你的layout.html的身體標記。

+0

我對你的答案做了一個小的修改,以便它有資格作爲答案(要求澄清不應該發生在答案中)。 –

+0

謝謝Tim,我不知道! :) – Jarrod