javascript函数未定义错误

时间:2011-07-11 12:46:25

标签: javascript python google-app-engine

我正在使用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时,所有错误都会消失。

1 个答案:

答案 0 :(得分:1)

我的猜测是,您在同一根目录中同时拥有main.pyfoo.js 您应该为app.yaml配置文件中的javascripts映射项目静态内容的路由:

1.在项目的根目录中创建一个名为static/javascripts的目录

2.在app.yaml处理程序

中添加javascripts静态部分
 -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