使用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
- 前後端處理流檔案請求後端
- Spring MVC檔案請求處理詳解:MultipartResolverSpringMVC
- SpringMVC原始碼分析:POST請求中的檔案處理SpringMVC原始碼
- Django 靜態檔案管理與部署指南Django
- Django基礎二靜態檔案和ORMDjangoORM
- Django 教程之media和static靜態檔案Django
- ASP.NET Core靜態檔案處理原始碼探究ASP.NET原始碼
- 關於Play框架的靜態檔案框架
- 關於在request請求時,處理請求引數的問題
- 跟我一起學.NetCore之靜態檔案處理的那些事NetCore
- 使用cors完成跨域請求處理CORS跨域
- Laravel 專案 偽靜態分頁處理Laravel
- 臉書Haystack檔案系統是處理大流量的長尾請求的?
- AFNetworking(二)AFNetworking對form-data請求體的處理ORM
- 請求資料處理
- springmvc處理ajax請求SpringMVC
- 處理 HTTP 請求的註解HTTP
- Go語言中介軟體框架 Negroni 的靜態檔案處理原始碼分析Go框架原始碼
- 探究:nuget工具對不再使用的dll檔案的處理策略
- 如何使用post請求下載檔案
- 請教下 log 檔案配置在 django 專案靜態資源直接訪問亂碼怎麼解決?Django
- Sanic 靜態檔案
- SpringBoot使用Axios傳送請求,引數處理Spring BootiOS
- 在 .NET 中使用 Flurl 高效處理Http請求HTTP
- DeferredResult——非同步請求處理非同步
- SpringBoot處理靜態資源Spring Boot
- Angular專案簡單使用攔截器 httpClient 請求響應處理AngularHTTPclient
- Spring MVC的請求處理邏輯SpringMVC
- 深入學習和理解Django檢視層:處理請求與響應Django
- 使用 Python 處理 CSV 檔案Python
- 3、Webserver如何處理動態檔案WebServer
- Flutter-靜態資源和專案圖片的處理Flutter
- 如何使用策略模式處理多種型別請求模式型別
- nginx偽靜態檔案Nginx
- 7、靜態檔案的載入
- nginx 如何處理一個請求Nginx
- Go Web如何處理Web請求?GoWeb
- yai 請求預處理指令碼AI指令碼