2012-07-11 80 views
1

我開始在web2py,我需要鏈接我的靜態文件在我的視圖文件中。web2py URL助手不構建好的URL

我嘗試使用URL()輔助,使聯繫,但我不能正常工作......

我的應用程序被稱爲紅色的,我的控制器默認,我的功能指標。 我的觀點被稱爲index.html,然後是默認的文件夾內,當我去我正確地看風景的頁面,但我的網址都是錯誤的......

到目前爲止我tryed:

URL('static', 'css/bootstrap.min.css') 

這給了回來: 「/static/css/bootstartp.css」

URL(a=request.application, args='static/css/bootstrap.css') 

這給了: 「/default/red/static/css/bootstrap.min.css」

URL(r=request, arg='static/css/bootstrap.min.css') 

這給了: 「/index/static/css/bootstrap.min.css」

URL('static/css/bootstrap.min.css') 

這給了: 「/default/static/css/bootstrap.min.css」

URL(a=request.application, c='static/css/bootstrap.min.css', f='') 

這給了:「/red/red/static/css/bootstrap.min.css」

我可能會嘗試一些更多,但沒有成功...

我的指數函數只返回字典()。

而且我的路由器:

routers = dict(

    # base router 
    BASE = dict(
     applications = ['red', 'admin'], 
     default_application = 'red', 
     default_controller = 'default', 
     default_function = 'index', 
     map_static = True 
    ) 
) 

我認爲這是同樣重要的是說我測試它在谷歌應用程序引擎。

我想要「/red/static/css/bootstrap.min.css」。

+0

這將有助於瞭解您的期望。第一個是你應該使用的,它看起來很好(即把'靜態'作爲控制器和靜態/作爲函數的路徑)。最後一個('/ red/red/...')看起來有點奇怪,並且可能是一個錯誤,除了將控制器指定爲路徑並不是真正的預期。 – JLundell 2012-07-12 00:45:03

+0

(第一個缺少'min',但我會要求你仔細檢查一下。) – JLundell 2012-07-12 01:30:53

+0

你是什麼意思缺少'min'?至於預期我編輯的帖子請回顧:) – Gust 2012-07-12 08:02:36

回答

0

我找到了解決辦法。

URL('static', 'css/bootstrap.min.css') 

這條線是正確的,但是我需要在路由器文件中關閉map_static。

0

要獲得「/red/static/css/bootstrap.min.css」

URL('red/static', 'css/bootstrap.min.css') 
+0

我不想明確包含應用程序的名稱......否則我不需要以URL開頭。 – Gust 2012-07-25 09:13:12

1

我希望你想鏈接你的視圖中的CSS文件。 你可以做到這一點是兩種方式。

1.In控制器文件(內側指數():)

response.files.append(URL(request.application,'static/css','bootstrap.min.css')) 

可以在視圖(index.html的)也使用相同的命令:

{{response.files.append(URL(request.application,'static/css','bootstrap.min.css'))}} 

2.in視圖(index.html)你可以提到正常的CSS鏈接。

<LINK rel="stylesheet" type="text/css" href="{{=URL('static/css','bootstrap.min.css')}}"> 

如果你想鏈接這個文件的整個應用程序。然後在layout.html頁面中提到上述行。