博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SAE Tornado Worker 的一点使用经历
阅读量:5820 次
发布时间:2019-06-18

本文共 936 字,大约阅读时间需要 3 分钟。

hot3.png

首先,SAE的python web框架使用的文档在这里:

使用的tornado版本是3.1。文档里也有提到,Torando的Worker还不稳定,需要谨慎使用。

问题:

首先申明:懒人,只是在本地测试的时候发现这个问题了,线上测试没有进行过,估计也会有。

在使用过程中,发现其他各个方面都还好,但是如果使用Tornado的sattic_path配置,在本地测试过程中,总会出现static path 中的文件无法访问的问题,浏览器报错误 403, forbiden了,说是权限问题。

原因

文档中有提到

如果config.yaml中没有设置静态文件相关的handlers,系统会默认将/static为前缀 的URL转发到应用目录下的static目录。

所以估计是因为SAE自动的会将 /static 目录作为静态文件目录,然后tornado也会处理这个目录,冲突了。

解决方案

没有在线上进行过测试,但本地可以简单修改tornado的web.py代码解决掉这个问题。

测试发现,其实出错的主要原因,在于web.py会将 /static/yourfile.css分割开,分成了root部分./static和path部分yourfile.css。但是如果加上sae,后面一半path会变成 /yourfile.css

解决:在tornado的web.py中,修改函数get_absolute_path,改成:

def get_absolute_path(cls, root, path):    if path.startswith("/"): path = path[1:]   # !! 添加这句    abspath = os.path.abspath(os.path.join(root, path))    return abspath

但毕竟没办法修改SAE预装打代码,也就是在本地能用着,所以:

  1. 很简单,放弃使用tornado的模板引擎,改用其他的模板引擎,如jinja2, pytenjin 什么的,一堆一堆的。
  2. 哈哈,不用worker喽,老老实实用wsgi。

转载于:https://my.oschina.net/gongshang/blog/358237

你可能感兴趣的文章
Leetcode-Database-176-Second Highest Salary-Easy(转)
查看>>
构建Docker Compose服务堆栈
查看>>
最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )
查看>>
CentOS7下zip解压和unzip压缩文件
查看>>
Hadoop生态圈-Kafka常用命令总结
查看>>
如何基于Redis Replication设计并实现Redis-replicator?
查看>>
Linux 环境下 PHP 扩展的编译与安装 以 mysqli 为例
查看>>
浮点数内存如何存储的
查看>>
贪吃蛇
查看>>
EventSystem
查看>>
用WINSOCK API实现同步非阻塞方式的网络通讯
查看>>
玩一玩博客,嘿嘿
查看>>
P1352 没有上司的舞会
查看>>
ios11文件夹
查看>>
【HLOJ 559】好朋友的题
查看>>
Electric Fence(皮克定理)
查看>>
nvl 在mysql中如何处理
查看>>
MyEclipse 快捷键
查看>>
快速傅里叶变换FFT
查看>>
大数据常用基本算法
查看>>