1

Meteor で大規模なエンタープライズ アプリに取り組んでいます。私が遭遇した問題は、HTML ページの長さが 900 行以上になると、散発的に (より多くのコード行で) 次のエラーが発生するようになることです。

Your app is crashing. Here's the latest log.

Errors prevented startup:
Exception while bundling application:
Error: unclosed <body> - line 7, file /var/www/www.######.com/#######.html
<body>
    at new html_scanner.scan.parseError (/usr/lib/meteor/packages/templating/html_scanner.js:23:14)
    at Object.html_scanner.scan (/usr/lib/meteor/packages/templating/html_scanner.js:92:15)
    at /usr/lib/meteor/packages/templating/package.js:46:32
    at _.extend.add_file (/usr/lib/meteor/app/lib/bundler.js:195:5)
    at self.api.add_files (/usr/lib/meteor/app/lib/bundler.js:96:16)
    at Array.forEach (native)
    at Function._.each._.forEach (/usr/lib/meteor/app/lib/third/underscore.js:79:11)
    at self.api.add_files (/usr/lib/meteor/app/lib/bundler.js:95:11)
    at Array.forEach (native)
    at Function._.each._.forEach (/usr/lib/meteor/app/lib/third/underscore.js:79:11)
Your application is crashing. Waiting for file change.

ページを数回更新すると、最終的には機能し、閉じられていないタグがないことがわかります。エラーなしでいくつかのhtml lintプログラムを介してhtmlを実行しました。私のコードは独自のものなので投稿できませんが、他の誰かがこの問題に遭遇したのだろうか?

html_scanner に問題があるのではないかと思っていますが、テンプレート パッケージをデバッグする時間がありません。どんなアイデアでも大歓迎です。

4

2 に答える 2

1

問題を再現するために900以上の行のサンプルを考え出そうとしましたが、思いついた基本的なhtmlではそれを行うことができませんでした。私はうまくいけば他の誰かを助ける解決策を思いついた。1つの大きなhtmlを使用する代わりに、テンプレートがすでに組み込まれているため、テンプレートタグの「ビュー」ごとに個別のhtmlを作成しました。

<template name="testView">(content)</template>

次に、以下を使用して各ビューをhtmlメインページに戻します。

{{> testView }}

上記の問題は解決したようです。メインのhtmlページは300行になり、各ビューは独自のhtmlファイルにあります。

于 2013-01-02T01:15:28.347 に答える
1

エラー メッセージは、閉じられていないタグについて不平を言っているようです。HTML をチェックし、すべてのタグが適切に閉じられていることを確認します。

特定の問題とは関係ありませんが、テンプレートをタグでラップするときに同様のエラーが発生しました。

于 2013-01-23T12:01:45.333 に答える