温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python django - static文件处理与线上部署测试

发布时间:2020-07-17 20:25:13 来源:网络 阅读:2210 作者:hqtmit 栏目:开发技术

static文件相关操作涉及:
a. 文件位置与访问路径映射
b. setting.py与static相关配置

STATIC_URL
STATIC_ROOT
STATICFILES_DIRS

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



1. 开发环境-目录结构

python django - static文件处理与线上部署测试

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. 开发环境-访问测试

python django - static文件处理与线上部署测试

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 () {
            $("h2").click(function () {
                $("h2").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 () {
            $("h2").click(function () {
                $("h2").hide()
            })
        })

    </script>

</head>
5. 线上部署问题

当需要同时部署admin时

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

此时报错
python django - static文件处理与线上部署测试

修改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文件夹(含内容)
python django - 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文件处理与线上部署测试

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI