使用Django來處理對於靜態檔案的請求
引言
本方法適用於linux+python2.7+django1.2,使用django自帶的web服務。
同樣也適用於sina app engine。
1、準備工作
準備css檔案,準備js檔案,準備image檔案。
在網站根目錄新建目錄【medias】,在【medias】目錄新建目錄【styles】,用來存放css檔案。
2、配置對於靜態檔案訪問的路徑
2.1、在settings.py檔案中新增靜態檔案的目錄
假設mysite是網站的根目錄,medias是剛才我們新建的目錄
- STATICFILES_DIRS = (
- # Put strings here, like “/home/html/static” or “C:/www/django/static”.
- # Always use forward slashes, even on Windows.
- # Don`t forget to use absolute paths, not relative paths.
- `mysite/medias`
- )
2.2、在urls.py檔案中新增如下路由規則
- urlpatterns=patterns(“,
- (r`^site_medias/(?P<path>.*)$`,`django.views.static.serve`, {`document_root`:mysite.settings.STATICFILES_DIRS, `show_indexes`: True}),
- )
將對於site_medias目錄及其子目錄的檔案的請求,對映到settings.py檔案設定的STATICFILES_DIRS中指定的路徑。並且使用了show_indexes引數,引數設定為True之後,表明可以通過瀏覽器,瀏覽medias目錄的資源,包括瀏覽資料夾及其檔案。瀏覽地址是http://localhost:8080/site_medias/,假設服務使用埠是8080,在設定了上面的選項之後,應該可以通過該地址瀏覽資料夾及檔案。
3、使用靜態檔案
3.1、在template檔案中引用css檔案
在base.html檔案的head標記中新增下面的css引用。
- <link href=“/site_medias/styles/site.css” rel=“stylesheet” type=“text/css”>
3.2、在普通html檔案中引用css檔案
也是直接在html檔案的head標記中新增下面的內容。
- <link href=“/site_medias/styles/site.css” rel=“stylesheet” type=“text/css”>
總結
完成上面的工作之後,css就應該開始起作用了。對於圖片和js的引用也是類似的做法。
在django的官網有兩個連結講到了相關的內容,詳細情況大家可以點選檢視。
上面這個連結的主題是:How to serve static files,也就是如何使用靜態檔案(包括css,js指令碼,圖片等等)。裡面講到了,可以使用上面的辦法使用靜態檔案,但是django主要是用來處理動態檔案的,上面的辦法不高效,並且不安全,所以是不推薦的。在開發環境用一下還可以,但是生產環境,推薦使用專業的web服務來提供靜態檔案的處理。專業的web服務包括:appache、lighttpd、cherokee等等。結合這些專業web服務的使用者,在文章中也有連結。
上面的連結就是將如何使用django來處理靜態檔案,一些處理的細節,包括配置啊、引用啊什麼呢的。
本文轉自 virusswb 51CTO部落格,原文連結:http://blog.51cto.com/virusswb/749252,如需轉載請自行聯絡原作者
相關文章
- django-驗證碼/靜態檔案處理Django
- Django靜態檔案輸出Django
- 前後端處理流檔案請求後端
- IIS釋出程式,出現:請求的內容似乎是指令碼,因而將無法由靜態檔案處理程式來處理解決方案指令碼
- Django1.11.7配置靜態檔案Django
- Django 靜態檔案管理與部署指南Django
- 對於CSV檔案中{,}和{"}的處理
- SpringMVC原始碼分析:POST請求中的檔案處理SpringMVC原始碼
- Django 教程之media和static靜態檔案Django
- Django基礎二靜態檔案和ORMDjangoORM
- django入門-靜態檔案-part6Django
- 從請求到響應 django 都做了哪些處理Django
- Spring MVC檔案請求處理詳解:MultipartResolverSpringMVC
- ASP.NET Core靜態檔案處理原始碼探究ASP.NET原始碼
- 關於在request請求時,處理請求引數的問題
- 關於Play框架的靜態檔案框架
- Django初級手冊6-靜態檔案Django
- Django1.4和1.3的靜態檔案路徑配置Django
- 使用cors完成跨域請求處理CORS跨域
- 來玩Play框架07 靜態檔案框架
- Laravel 專案 偽靜態分頁處理Laravel
- 請求資料處理
- wordpress 處理 ajax 請求
- Mongodb請求處理流程MongoDB
- .NET處理HTTP請求HTTP
- 處理REST SOE請求REST
- [譯]使用 Siesta 處理 Swift 網路請求Swift
- 臉書Haystack檔案系統是處理大流量的長尾請求的?
- 對於undotbs01.dbf檔案太大的處理辦法
- Go語言中介軟體框架 Negroni 的靜態檔案處理原始碼分析Go框架原始碼
- 跟我一起學.NetCore之靜態檔案處理的那些事NetCore
- Vue元件化時使用axios處理ajax請求的使用Vue元件化iOS
- SpringMVC請求處理流程SpringMVC
- 請求處理管道個人理解
- nginx處理http請求流程NginxHTTP
- springmvc處理ajax請求SpringMVC
- 如何使用post請求下載檔案
- 在 .NET 中使用 Flurl 高效處理Http請求HTTP