2011-07-11 23 views
0

私はPython用Google App Engine SDKを使用しています。私は別の.jsファイルにJavascriptの関数を記述しての.pyファイルに含めた場合、私はChromeで次のエラーを取得: -javascript関数が定義されていないエラー

の.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ファイルそのものに含めます。

+2

印刷の構文が間違っています。あなたは複数行の文字列の最初の行に三重引用符または '\'が必要です。 Pythonコードで引用符で囲まれていない '
'もありますが、これは実際にあなたのコードには書かれていません。とにかく、HTTPヘッダと生のHTMLを 'print'するのではなく、WSGIフレームワークとテンプレートシステムを使いたいと思っています。 – geoffspear

+0

私は自分のコードに\を持っていました。
は私のコードの一部ではありません。ここでコードを書式化しようとしている間にそれを吐いた。上記の2つのタイプミスを修正しました。 – haltTm

+0

上記のコードをデバッグするのに手伝ってください。 :) – haltTm

答えて

1

私は、main.pyfoo.jsが同じルートディレクトリにあると思います。ディレクトリがプロジェクト

2.Add JavaScriptの静的セクションのルートでstatic/javascriptsと呼ば

1.Create:
あなたはapp.yaml設定ファイルでJavaScriptのようなあなたのプロジェクトの静的コンテンツのためのルートをマップする必要がありますあなたのapp.yamlハンドラ内でこのような

-url: /javascripts 
    static_dir: app/static/javascripts 

3.Modifyあなたのコード:

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に切り替えるのは避けてください。

関連する問題