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

Mako模板渲染的HTML中JavaScript无法加载(404错误)求助

Mako模板渲染的HTML中JavaScript无法加载(404错误)求助

兄弟,这问题我太熟啦!你现在的核心问题是Bottle服务器没有配置静态资源路由——你只给/main这个业务接口写了路由,但浏览器请求javascript/script.js的时候,Bottle找不到对应的处理逻辑,直接返回404了。

给你几个简单的解决办法:

1. 给JavaScript文件单独加路由

在你的daemon.py里添加这段代码,专门处理/javascript/开头的请求:

from bottle import static_file

@route('/javascript/<filename>')
def serve_javascript(filename):
    # 指定静态文件的根目录是html/javascript
    return static_file(filename, root='html/javascript')

这样浏览器请求/javascript/script.js时,Bottle就会去html/javascript/目录下找对应的文件返回。

2. 配置通用静态资源路由(更推荐)

如果以后还会加CSS、图片这类静态资源,直接把整个html目录设为静态资源目录更方便:

from bottle import static_file

@route('/<filepath:path>')
def serve_static(filepath):
    return static_file(filepath, root='html')

这个路由会匹配所有/开头的非业务请求,比如javascript/script.js就会对应到html/javascript/script.js,完美适配你现在的script标签路径。

⚠️ 注意:这个静态路由要放在所有业务路由(比如你的/main路由)的后面,不然会覆盖掉业务接口的请求。

顺便优化下你的Mako配置

你之前把html/javascript加到了TemplateLookup里,其实完全没必要——TemplateLookup是用来找Mako模板文件的,静态资源是Bottle负责处理的,所以可以把这段代码简化:

lookup = TemplateLookup(directories=["html"])

按上面的步骤改完,再刷新页面,你的script.js应该就能正常加载啦!

备注:内容来源于stack exchange,提问作者Robert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 18:09:34