1. 程式人生 > >python django學習二: static文件處理與線上部署測試

python django學習二: static文件處理與線上部署測試

image 運行 color 文件處理 收集 scrip 線上部署 ges sta

static文件相關操作涉及:
a. 文件位置與訪問路徑映射
b. setting.py與static相關配置

STATIC_URL
STATIC_ROOT
STATICFILES_DIRS

c. html中對於static文件引用方式
d. python manage.py collectstatic



1. 開發環境-目錄結構

技術分享圖片

2. setting.py 設置

STATIC_URL = ‘/static/‘
# STATIC_ROOT= os.path.join(BASE_DIR,‘static‘)
STATICFILES_DIRS=(
    os.path.join(BASE_DIR,‘static‘),
)

STATIC_URL中設定的為瀏覽器實際訪問地址。
STATICFILES_DIRS 對應文件路徑

3. 開發環境-訪問測試

技術分享圖片

4. html引用(django jinja2模版)

4.1 硬地址直接使用

html head部分

<head>
    <meta charset="UTF-8">
    <title>Title</title>
<script src="/static/appcms/jquery-3.3.1.js"></script>
    <script>
        $(document).ready(function () {
            $("h1").click(function () {
                $("h1").hide()
            })
        })

    </script>

</head>
4.2 引用使用
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    {% load staticfiles %}
    <script src="{% static ‘appcms/jquery-3.3.1.js‘ %}"></script>
    <script>
        $(document).ready(function () {
            $("h1").click(function () {
                $("h1").hide()
            })
        })

    </script>

</head>

5. 線上部署問題

當需要同時部署admin時

運行命令收集static文件 python manage.py collectstatic

此時報錯
技術分享圖片

修改setting.py文件
STATIC_URL = ‘/static/‘
STATIC_ROOT= os.path.join(BASE_DIR,‘static‘)
# STATICFILES_DIRS=(
#     os.path.join(BASE_DIR,‘static‘),
# )
再運行 python manage.py collectstatic

完成後“static_root”即static目錄,產生其他其他項目的static文件夾(含內容)
技術分享圖片

收集完成後改回配置,註釋掉static_root
STATIC_URL = ‘/static/‘
# STATIC_ROOT= os.path.join(BASE_DIR,‘static‘)
STATICFILES_DIRS=(
    os.path.join(BASE_DIR,‘static‘),
)

程序打包,上傳到服務器,測試通過

技術分享圖片

python django學習二: static文件處理與線上部署測試