apache靜態文件配置


開發環境配置

需要下面幾個步驟

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

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

3. 設置settings.py中的STATIC_URL的值為“/static/”

4. 在模版中使用{{ STATIC_URL }}作為靜態文件路徑前綴。比如純在圖片文件your_app/static/img/logo.png,那么應用代碼為<img src=”{{ STATIC_URL }}img/logo.png”>

5. 渲染模版的Context對象需要換成RequestContext,否則模版中無法引用到STATIC_URL對應的值。

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

特別注意:按照上述設置,settings.py中的DEBUG選項必須設置為True,否則'/static/'無法映射到靜態文件目錄。參見這里:http://stackoverflow.com/a/4566907/1114397

 

 

生產環境配置

我的發布環境是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 all
</Directory>

注意上面紅色部分。

Tips:如果訪問靜態圖片遇到403錯誤,此時說明路徑配置成功,離成功不遠了。只是路徑權限沒有配置正確,這時可以看看apahce錯誤日志,如果出現“client denied by server configuration”,說明是directory的權限沒有配置正確,可以查看自己的apache版本,然后做出響應配置。

 

希望本文對你有用!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM