我正在使用Google App Engine SDK for Python。当我在单独的.js文件中编写Javascript函数并将其包含在.py文件中时,我在Chrome中遇到以下错误: -
在.py文件中: -
未捕获的引用错误:未定义initFunc。
在.js文件中: -
未捕获的语法错误:意外的令牌<
资源被解释为脚本,但使用MIME类型text / html进行传输。
源代码: -
.py文件
print 'Content-Type: text/html'
print ''
print '\
<head>\
<title>Page</title>\
<script type="text/javascript" src="script.js">\
</script>\
</head>\
<body>\
<input type="button" onclick="initFunc();" value="Test" />\
</body>\
'
.js档案
function initFunc(){alert("hi");}\
当我在.py文件中包含initFunc时,所有错误都会消失。
答案 0 :(得分:1)
我的猜测是,您在同一根目录中同时拥有main.py
和foo.js
您应该为app.yaml
配置文件中的javascripts映射项目静态内容的路由:
1.在项目的根目录中创建一个名为static/javascripts
的目录
2.在app.yaml
处理程序
-url: /javascripts
static_dir: app/static/javascripts
3.修改你的代码:
print 'Content-Type: text/html'
print ''
print """
<head>
<title>Page</title>
<script type="text/javascript" src="/javascripts/script.js">
</script>
</head>
<body>
<input type="button" onclick="initFunc();" value="Test" />
</body>
"""
正如Wooble正确建议的那样,您应该避免使用print
进行编码,并切换到GAE支持的更加花哨的Python web-frameworks。