歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Django靜態文件的配置

Django靜態文件的配置

日期:2017/2/27 15:59:22   编辑:Linux教程
網站的css js 和一些圖片等非程序相關的文件,可以看成是靜態文件。怎麼正確配置,才能讓Django網站解析到靜態文件呢?
簡明來說,要注意兩個文件:settings.py url.py。
Django 1.3之前只有MEDIA_ROOT,不管是網站靜態文件(js、css等), 還是用戶上傳的文件都在同一個目錄下。而 1.3開始將兩個目錄隔離開了。

一、1.3 之前將靜態文件和用戶文件混放的方法:
1、settings.py:
import os
MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'media')
# MEDIA_URL = '/media/'

* 注意: 我們的靜態文件在根目錄下的static文件裡,需要自己創建,如果文件夾名不一樣,join的參數改成自己起用的名字.

2、urls.py:
from django.conf import settings
   (r'^site_media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),


* 注意:site_media,這個可以隨自己喜歡的名字,建議參考Django最佳實踐做法。

3、最後就是如何在templates裡使用靜態文件了:
<script type="javascript/text" src="/site_media/js/config.js"></script>
<link rel="stylesheet" type="text/css" href="/site_media/css/contents.css"/>
<img src="/site_media/images/logo.ipg" alt=""/>

4、這樣的配置,在開發環境中式能正常解析的,在產品部署環境中,只需修改settings文件的
MEDIA_URL = '/media/' 需要改成實際的域名 MEDIA_URL = 'http://www.xxx.com/meidia/'

二、1.3 之後將靜態文件和用戶文件獨立存放的方法:
1、settings.py:
STATIC_PATH = './static'

2、urls.py:
from django.conf import settings
   (r'^site_static/(?P.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_PATH}),


3、在工程目錄創建 static 目錄作為存放靜態文件的目錄

4、html 中引用:
<script type="javascript/text" src="/site_static/js/config.js"></script>
<link rel="stylesheet" type="text/css" href="/site_static/css/contents.css"/>
<img src="/site_static/images/logo.ipg" alt=""/>

**** 以上兩種方法推薦使用第二種,第一個 media 可以存放用戶上傳的文件,第二中專門用來存放服務器靜態文件.
Copyright © Linux教程網 All Rights Reserved