2

既存の Java/JSP アプリに統合する必要がある ember-cli ベースのアプリがあります。これを行うには、ember-cli/broccoli-asset-rev によって生成される js/css フィンガープリント URL を含む JSP ファイルを生成する必要があります。

これは html ファイルに対しては正常に機能しており、Brocfile.js を次のように変更することで、JSP ファイルを使用するように設定できます。

var app = new EmberApp({
  outputPaths: {
    app : {
      html: 'index.jsp'
    }
  }
});

ただし、これにより、index.jsp を html ファイルとして使用するため、ember serve が機能しなくなります。両方を生成することは可能ですか?

4

3 に答える 3

1

多くのことを試した後、2 つの解決策を思いつきましたが、どちらにも欠点があります。1 つ目は、新しいブロッコリー ツリーを作成してアプリ ツリーとマージし、結果のツリーで broccoli-asset-rev を明示的に実行することです。これの欠点は、口ひげが水和しないことです。これは、構成の出力に役立ちます。これは次のようになります。

//Brocfile.js

var mergeTrees = require('broccoli-merge-trees');
var funnel = require('broccoli-funnel');
var assetRev = require('broccoli-asset-rev');
var EmberApp = require('ember-cli/lib/broccoli/ember-app');

var jspTree;

var app = new EmberApp({
  fingerprint: {
    enabled: false
  },
  storeConfigInMeta: false
});


jspTree = funnel('app', {
  files: ['index.jsp']
});

module.exports = assetRev(mergeTrees([appTree = app.toTree(), jspTree]), {
  extensions: ['js', 'css'],
  replaceExtensions: ['jsp', 'html']
});

もう 1 つの解決策は、インデックスのツリーを構築する ember-cli のプライベート API メソッドをオーバーライドすることです。この解決策では、口ひげに潤いを与えますが、プライベートな方法に依存しています. 詳細はこちらこちら

于 2015-05-28T15:28:31.003 に答える
0

シンボリックリンクを追加するのはどうですか?

ln -s index.jsp index.html
于 2015-05-19T15:41:22.993 に答える
0

プロジェクトで使用しているビルド ツールに応じて、次のようなものをお勧めします。

  1. index.html にいくつかのプレースホルダー セクションを配置します。
  2. index.jsp を index.jsp.tmp にコピーします。
  3. コードを index.jsp からプレースホルダー セクションにコピーします。
  4. index.jsp.tmp を index.jsp に戻し、クリーンアップします。

仕事をするために、 gulp-replace のようなものを検討するかもしれません。

于 2015-05-19T16:00:07.570 に答える