3

ボトル (python web フレームワーク) を使用して html のページを表示しようとしています。このページには JavaScript が埋め込まれていますが、ボトルで提供すると表示されません。

私が使用している JS はEditAreaです。必要に応じてクリーンアップし、クロムでページを開いたときに適切に表示される html ページに配置できます。しかし、ボトルを使用する場合:

@route('/edit')
def edit():
    return template('editarea')


@route('/edit_area')
def edit_area():
    send_file('example1.html', root='path/to/file/')

http://localhost:8080/editまたは /edit_area にアクセスすると、派手な JavaScript 機能のないページが表示されます。

最終的にはこれを接続したいと思います (EditArea はテキスト領域であり、うまくいけば実行できるコードを受け入れるために使用します... しかし、それは別の問題です...) が、今のところ想定されているすべてですすることは、ページと JavaScript を表示することです。JS は、可能な限り単純に html に配置されます。これら 2 つのブロックは異なるファイルを使用しますが、同じ html ファイルのコピーであり、一方は .html で、もう一方は .tpl 拡張子です。

<title>EditArea - the code editor in a textarea</title> 
    <script language="Javascript" type="text/javascript"     src="../edit_area/edit_area_full.js"></script> 
    <script language="Javascript" type="text/javascript"> 
        // initialisation
        editAreaLoader.init({

...そして、それはすべてのJSコードです(私が書いたものではありません)。

インポートするサーバーを起動するためのファイル: route、run、debug、template、request、send_file、および error from bottle; およびsqlite3; しかしそれだけです。他に含めるべきものはありますか?

私はボトルのドキュメントと他のいくつかの場所を調べましたが、誰もわざわざ書き留めていないことが本当に明らかなことであるか、人々が単にやらないことであるかのどちらかです...

私はパジャマを見ていました(「python」と「javascript」を含む検索クエリのさまざまな組み合わせが出てきます)が、pythonをjavascriptに変換するだけのようです。私はそれが私が望んでいることだとは思わない/ c javascriptはすでにjavascriptです...

あなたが持っているかもしれない洞察をありがとう。

4

2 に答える 2

4

ボトルのドキュメントで説明されているように、静的ファイルを提供するためのビューを作成する必要があります。

staticすべての静的ファイル(css、js、画像)をアプリケーションの隣のフォルダーに入れることをお勧めします。静的ファイルを提供するビューは、次のようになります。

from bottle import static_file    

@route('/static/:filename:')
def send_static(filename):
    return static_file(filename, root='./static/')

次に、次のようにファイルを含めます.js(もちろん、選択したパスを使用します)。

<script type="text/javascript" src="/static/edit_area/edit_area.js"></script>
于 2011-07-29T19:28:26.060 に答える
2

ボトルに含まれている SimpleTemplate というテンプレート システムを使用している場合、複数行の文字列はサポートされず、テンプレートは実行可能な Python バイトコードにコンパイルされます。そのため、Javascript が削除される可能性があります。

ページに JavaScript を含める唯一の方法は、「edit_area_full.js」ファイルで行ったようにスクリプト タグを使用することです。

于 2011-07-29T19:20:13.860 に答える