JavaScript函数未定义错误
我正在使用Google App Engine的Python开发工具。当我在一个单独的.js文件中写JavaScript函数,并在.py文件中引入这个.js文件时,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");}\
当我把initFunc函数直接写在.py文件里时,所有错误都消失了。
1 个回答
1
我猜你的项目里有两个文件,main.py
和 foo.js
,它们都在同一个根目录下。
你应该在 app.yaml
配置文件中为项目的静态内容,比如 JavaScript,设置一个路径。
1. 在你的项目根目录下创建一个叫 static/javascripts
的文件夹。
2. 在你的 app.yaml
的处理程序中添加 JavaScript 的静态部分。
-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
,而是切换到更高级的Python 网络框架,这些框架是 GAE 支持的。