我正在使用webpy framefork。我想在一個請求上提供靜態文件。在webpy框架中是否有特殊的方法,或者我只需要讀取並返回該文件?如何在webpy中提供文件?
7
A
回答
10
如果您正在運行開發服務器(不阿帕奇):
創建一個目錄(也稱爲文件夾)調用運行web.py服務腳本的位置是靜態的。然後將您想要提供的靜態文件放置在靜態文件夾中。
例如,URL會將圖像./static/logo.png發送到客戶端。
參考:http://webpy.org/cookbook/staticfiles
更新。如果你真的需要擔任/
一個靜態文件,你可以簡單地使用重定向:
#!/usr/bin/env python
import web
urls = (
'/', 'index'
)
class index:
def GET(self):
# redirect to the static file ...
raise web.seeother('/static/index.html')
app = web.application(urls, globals())
if __name__ == "__main__": app.run()
6
我這個掙扎在過去的幾個小時......呸!
發現了兩個解決方案,都爲我工作... 1 - 在.htaccess的ModRewrite行之前添加此行:
RewriteCond %{REQUEST_URI} !^/static/.*
這將確保請求到/靜態/目錄中不重寫去你的code.py腳本。
2 - 在code.py添加靜態處理程序,併爲每個幾個目錄的URL條目:
urls = (
'/' , 'index' ,
'/add', 'add' ,
'/(js|css|images)/(.*)', 'static',
'/one' , 'one'
)
class static:
def GET(self, media, file):
try:
f = open(media+'/'+file, 'r')
return f.read()
except:
return '' # you can send an 404 error here if you want
注 - 我偷了這起web.py谷歌組,但無法找到當發佈更多!
這些無論是工作對我來說,無論是在對web.py模板和直接調用一個網頁,我投入「靜態」
1
我不建議與服務網絡靜態文件的.py。你最好配置apache或nginx。
相關問題
- 1. 如何提供sourceMappingURL文件?
- 2. 如何在本地提供文件?
- 3. 如何在android中的文本文件中提供新行?
- 4. 如何從Django提供文本文件?
- 5. 如何從testng中的多個文件中提供數據提供者
- 6. 在哪裏以及如何在node.js中提供文件
- 7. 如何爲Team City提供文件?
- 8. 如何使用Jetty提供JSP文件?
- 9. asp.net,如何提供靜態文件
- 10. 如何提供靜態文件? (css)
- 11. 如何從HttpListener提供相關文件
- 12. 如何用JSP提供文件? 。
- 13. 如何提供清單文件
- 14. 如何使用Pylons提供大文件?
- 15. 如何提供靜態文件動態?
- 16. Django如何提供媒體文件?
- 17. github頁面如何提供文件?
- 18. 從war文件中提供文件
- 19. 在GAE中從BlobStore提供文件
- 20. 在IIS中提供虛擬文件
- 21. 在Javascript文件中提供yml翻譯
- 22. 在OpenShift中提供Django靜態文件
- 23. 在會話中提供文件下載
- 24. 在Meteor.js中提供靜態文件
- 25. 在「class only」jar文件中提供javadoc
- 26. PowerShell:在文件中提供參數
- 27. 在MVC中提供Excel文件
- 28. 在Zend Framework中提供文件MVC
- 29. 如何爲存儲在asp.net中的app_data文件夾中的文件提供URL
- 30. 如何使用ngnix在生產中提供webpack構建文件
多數民衆贊成在文件只在/靜態路徑,我需要服務index.html請求與路徑/ – codez 2011-01-20 19:26:23
@codez:更新我的答案。 – miku 2011-01-20 19:34:01
這隻適用於你直接從它所在的文件夾運行web.py應用程序。如果你想運行/path/to/my/web/app.py,那麼你運氣不好。 – Octopus 2013-11-22 05:01:46