公司django项目引入xadmin作为后台,在开发环境中访问没有问题。但是在生产环境中可以访问登录页面点击登录后一直卡住,看后台日志是登录成功后重定向一直在响应,每次响应时间大约都要十分钟左右,导致前端页面直接超时。
因为生产是布在docker中的,自己本地不是,各种尝试后本地都是可以的,最后发现唯一的区别就是生产不能访问外网,怀疑是xadmin请求了网络资源。
排除方法一:
在项目的静态文件中找到xadmin的静态文件夹右键-find in path,输入“http”,找到很多包含http://www.w3.org
的文件,怕删除后会有问题,先将包含的内容复制了,然后把所有的包含http://www.w3.org
的信息全删除。
排除方法二:
在adminx.py
文件中注册全局设置时配置了use_bootswatch = True
,调出主题菜单,显示更多主题。
class BaseSetting(object):
enable_themes = True
use_bootswatch = True
xadmin.site.register(views.BaseAdminView, BaseSetting)
跟踪源代码,发现/xadmin/plugins/themes.py
下的block_top_navmenu
方法,在use_bootswatch=True
的时候,就会使用httplib2
去加载http://bootswatch.com/api/3.json
这个网址。
# themes.py 源码
... ...
if self.use_bootswatch:
ex_themes = cache.get(THEME_CACHE_KEY)
if ex_themes:
themes.extend(json.loads(ex