2

1 週間前に 2.2.1 に移行しましたが、深刻な問題に直面しています。私のプロジェクトは 2.1.5 で問題なく動作しました。

初期の play2 バージョンから、次の手順を使用してパブリック アセットにアクセスしています (公式ドキュメントからコピーを貼り付けました)。

-> ルートファイル:

GET   /assets/*file  controllers.Assets.at(path="/public", file)

テンプレートファイル:

<link href="@{routes.Assets.at("stylesheets/bootstrap.css")}" rel="stylesheet">

問題なく。

しかし、2.2.1 にアップグレードしたので、DEV モード (プレイ デバッグ / 実行) でのみ動作し、PROD では、すべてのアセット URL が 404 エラーを返します。

パッケージングの問題だと思い、メインの jar ファイルをチェックしました。パブリック フォルダーとさまざまな *.js および *css ファイルを確認できたので、それらは適切に含まれているようです。また、生成された URL はきれいに見えます。

http://localhost:9000/assets/stylesheets/bootstrap.css

私は単一モジュール レイアウトを使用し、Windows 7 で開発しています。Linux debian 6 にデプロイしようとしましたが、まったく同じ問題がありました。

助けていただければ幸いです。この問題を抱えているのは私だけではないようですが、修正の可能性についての情報はまだありません... 2.1.5 に戻すのは難しい作業です。多くのコード変更。

4

2 に答える 2

0

/assets/*file代わりにルートファイルに含める必要があり/assets*fileますが、これで問題が解決するとは思えません。

一部のアセットに他の特定のルートがある場合は、一般的なGET /assets/*fileルートがルート ファイルの最後のルートであることを確認してください。

于 2013-11-12T10:42:35.940 に答える
0

プロジェクトからすべての依存関係を1つずつ削除することで、最終的に問題の原因を見つけました。私が使用しているプラ​​グインの 1 つ (Japid) は、以前のバージョンの play 2.2.x でコンパイルされており、2.2.1 と互換性がなく、アセットのルーティングに問題がありました。

幸いなことに、japid の作成者は非常に反応がよく、問題を修正してくれました。(リリース 0.9.14.1 を参照)

于 2013-11-14T15:41:30.007 に答える