为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Python

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

STATIC_URL
STATIC_ROOT
STATICFILES_DIRS

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



1. 开发环境-目录结构

https://img1.sycdn.imooc.com//5b2c9b560001b46902510300.jpg

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

https://img1.sycdn.imooc.com//5b2c9bd10001693105320410.jpg

4. html引用(django jinja2模版)

4.1  硬地址直接使用

html head部分

<head>
    <meta charset="UTF-8">
    <title>Title</title>
<script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="/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 class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="{% 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

此时报错
https://img1.sycdn.imooc.com//5b2c9c3e000105dd08690077.jpg

修改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文件夹(含内容)
https://img1.sycdn.imooc.com//5b2c9c5a0001906602840102.jpg

收集完成后改回配置,注释掉static_root
STATIC_URL = '/static/'
# STATIC_ROOT= os.path.join(BASE_DIR,'static')
STATICFILES_DIRS=(
    os.path.join(BASE_DIR,'static'),
)

程序打包,上传到服务器,测试通过

https://img1.sycdn.imooc.com//5b2c9c7a0001fa0e05800388.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消