コードのスニペットを提供するサービス(FB likeやAddThisなど)がいくつかあります。のように見えます
<div class="service-name" data-something="x"></div>
<script type="text/javascript" src="http://service-domain.com/service-name.js"></script>
OK、かっこいいので、通常はHTMLに貼り付ければ機能します。Meteorではありません。
これが私が見るものです:
<script>
テンプレート/本体の内部が読み込まれていません-リソースに表示されません。Meteorの何かが実際にブラウザがJSファイルとして認識できないようにしています- それはから動作します
<head>
ここに問題と質問があります:
- 私はそれをロードしたくない
<head>
-スピードのために - そこからロードしても、QA環境とPROD環境があります。異なるドメイン(service-domain-qa.comとservice-domain.comなど)からこのスクリプトを読み込む必要があります
そして驚くべきことに、でテンプレートヘルパー/変数を使用することはできません<head>
。
従来のフレームワークでは、それはまったく問題ではありません。スクリプトはどこにでも含めることができ、ロードするだけです。サーバーテンプレートの任意の部分でロジック/変数を使用できます。
では、Meteorでこれをどのように行う必要がありますか?繰り返します:
- アプリページにロードする外部スクリプト(サードパーティドメインでホストされている)が必要です
- このスクリプトをプロジェクトのフォルダに保存することはできません
- スクリプトパスは環境によって異なります(すでに設定システムがあります)。そのため、スクリプトをレンダリングするテンプレートの場所には、コードからデータを渡す必要があります。
Template.createdのコードから(LAB.jsなどを使用して)動的なスクリプトをロードすることでこれを実現する方法を知っていますが、これはやり過ぎです...