You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

web.py部署在PythonAnywhere无法返回静态文件及模板报错问题

解决pythonanywhere部署web.py时静态文件/模板访问失败的问题

问题1:web.template.render找不到static目录下的模板

web.template.render默认从templates目录加载模板,而非static目录,这就是你触发“No template named Tomas”错误的原因。

解决方式二选一:

  • 将Tomas.html移到项目根目录下的templates文件夹(没有则新建),使用默认初始化的render调用:render = web.template.render('templates/')
  • 若必须从static目录加载模板,初始化render时指定路径:
    render = web.template.render('static/')
    
    更推荐遵循web.py规范,将模板和静态资源分开管理——模板放templates,css/js/img等静态文件放static。

问题2:访问static目录下的文件返回“not found”

这类问题通常是路由配置或pythonanywhere静态文件映射未正确设置导致的,按以下步骤排查:

  1. 检查web.py路由配置
    在路由列表中添加静态文件映射规则,建议放在其他路由之前:

    urls = (
        '/static/(.*)', web.static('static'),
        '/Tomas', 'TomasHandler',
        # 其他路由规则...
    )
    app = web.application(urls, globals())
    
  2. 验证pythonanywhere静态文件设置
    登录pythonanywhere后台进入你的Web应用页面,找到Static files区域:

    • 添加一条记录,URL填写/static/
    • Directory填写项目中static目录的绝对路径,例如/home/你的用户名/你的项目名/static
      保存设置后刷新应用,再尝试访问静态文件。
  3. 确认文件路径与权限

    • 确保small.jpg、Tomas.html确实在static目录下,注意linux环境区分文件名大小写
    • 检查文件权限,设置为644即可保证web进程能正常读取

内容的提问来源于stack exchange,提问作者carbontracking

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 11:55:18