3

Chaplin を基盤とする Trigger アプリを作成しています。開発目的で、アセットへの絶対パスを使用できると便利です。

<link rel="stylesheet" href="/_forge/stylesheets/app.css">
<script src="/_forge/javascripts/vendor.js"></script>
<script src="/_forge/javascripts/app.js"></script>

トリガーでこれを行うことは可能ですか?

4

2 に答える 2

3

残念ながら、プラットフォームが異なれば、Trigger の URL も異なります (独自の機能と制限があるため)。

絶対パスを取得したい場合は、ファイルモジュールを使用して、次の行に沿って何かを行うことができます:

forge.file.getLocal("js/app.js", function (file) {
    forge.file.URL(file, function (url) {
        $('body').append('<script src="'+url+'"></script>');
    });
});

絶対パスが役立つ理由はわかりませんが、javascript を使用して dom を変更するよりも電話で新しいページに移動する方が遅いため、1 つの html ページ (index.html) のみを使用することをお勧めします。その場合、すべての相対パスは常に同じでなければなりません。

于 2013-04-27T22:11:18.367 に答える
1

最も簡単な方法は、forge が index.html に存在するかどうかを検出し、それに応じて JavaScript をロードすることです。

<script type="text/javascript">
  function addScript(src, callback) {
    var tag  = document.createElement('script');
    tag.type = 'text/javascript';
    tag.src = src;

    tag.onload = callback;

    document.getElementsByTagName('head')[0].appendChild(tag);
  }


  var vendor = "javascripts/vendor.js";
  var app    = "javascripts/app.js";

  if(window.forge === undefined) {
    vendor = "/"+vendor;
    app    = "/"+app;
  }

  addScript(vendor, function() {
    addScript(app, function() {
      require('initialize');
    });
  });
</script>
于 2013-04-29T18:42:22.283 に答える