flask设置static为任意目录

 

# Flask实例的源码:
class Flask(_PackageBoundObject):
    def __init__(self, import_name,  # 指定应用的名字和工程目录,默认为__name__
                static_path=None,  #  是静态文件存放的路径,会赋值给static_url_path参数
                static_url_path=None,  # 设置静态文件路由的前缀,默认为“/static”
                static_folder='static', # 静态文件的存放目录, 默认值为"static"
                template_folder='templates', # 模板文件的存放目录,默认值为"templates"
                instance_path=None, # 设置配置文件的路径,在instance_relative_config=True情况下生效
                instance_relative_config=False # 设置为True表示配置文件相对于实例路径而不是根路径
                root_path=None) # #  应用程序的根路径

在使用flask开发web服务端时,flask 默认的 前端路径再 templates下,静态文件再 static下

/app.py
/static
    /js
    /css
    /img
/templates
    /index.html

如果不移动或者修改 app默认路径,可以直接这样写:

app = Flask(__name__)

html引用时加上static
 <script src="/potree/page_template/cowa_3DModul.js"></script>

static_url_path: 前端访问资源文件的前缀目录。默认是/static,就是前端必须这样访问:<img src="/static/img/mylogo.jpg" /> 我们改成 '',就可以这样访问了:<img src="/img/mylogo.jpg" />。就达到前端从根目录访问的目的了

即:app = Flask(__name__,template_folder='',static_folder='')

如果不按照官方文件结构设计,即指定任意目录

/test
    /app.py
/test1
    /static
        /js
        /css
        /img
    /templates
        /index.html
#构建绝对路径
path = str((Path(__file__).parent).absolute())+"/test1/static"

设置template和static路径

app = Flask(__name__,template_folder='../test1/templates',static_folder=path)

此时实例化后参数为

static_folder  /..../test1/static
static_url_path   /static
template_folder  ../test1/templates

注意static_url_path ,这个参数值在html中要添加到引用目录前面

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值