django靜態文件配置

開發環境配置apache

須要下面幾個步驟django

1. 在app目錄下建立static目錄,將靜態文件和相關文件夾放到此目錄下,如your_app/static/img等服務器

2. 確保settings.py中的INSTALLED_APPS中包含django.contrib.staticfilesapp

3. 設置settings.py中的STATIC_URL的值爲「/static/」ui

4. 在模版中使用{{ STATIC_URL }}做爲靜態文件路徑前綴。好比純在圖片文件your_app/static/img/logo.png,那麼應用代碼爲<img src=」{{ STATIC_URL }}img/logo.png」>日誌

5. 渲染模版的Context對象須要換成RequestContext,不然模版中沒法引用到STATIC_URL對應的值。server

上面的操做步驟參見官方文檔:https://docs.djangoproject.com/en/dev/howto/static-files/對象

特別注意:按照上述設置,settings.py中的DEBUG選項必須設置爲True,不然'/static/'沒法映射到靜態文件目錄。參見這裏:http://stackoverflow.com/a/4566907/1114397圖片

 

 

生產環境配置ip

個人發佈環境是apache,這裏只介紹相關配置。

使用apache的靜態發佈配置,而不使用django的配置,這也是django推薦的方式,由於django認爲靜態文件配置的方法交給服務器,會更有效。你所須要作的就是在apahce的配置文件中添加一個alice,以下

Alias /static "/your_wsgi/your_app/static"

# 注意結尾都沒有斜槓,全路徑也沒有。

# 若是alias後面的值有反斜槓結尾,那麼全路徑也須要有,保持一致

「/static」對應django settings.py中配置的STATIC_URL的值。而後添加directory選項,配置相關目錄的權限。Apache 2.4版本開始,對directory配置作出了調整,因此這裏須要注意,以下:

 

Apache v2.4及以上版本,

<Directory "/your_wsgi/your_app/static ">
Require all granted
< /Directory>

 

Apache v2.4如下版本

<Directory "/your_wsgi/your_app/static ">
Options Indexes FollowSymLinks
Order allow,deny
Allow from alli
< /Directory>

注意上面紅色部分。

Tips:若是訪問靜態圖片遇到403錯誤,此時說明路徑配置成功,離成功不遠了。只是路徑權限沒有配置正確,這時能夠看看apahce錯誤日誌,若是出現「client denied by server configuration」,說明是directory的權限沒有配置正確,能夠查看本身的apache版本,而後作出響應配置。

相關文章
相關標籤/搜索