シェルフ静的サーバーを使用してポリマー アプリケーションを提供しようとしています。次の構造を作成します。
ポリマーアプリ -pubspec.yml - 置き場 - server.dart - ウェブ - index.html - ライブラリ - main_app.dart - main_app.html
server.dart 内に次のコードを配置します。
import 'dart:io' show Platform;
import 'dart:async' show runZoned;
import 'package:path/path.dart' show join, dirname;
import 'package:shelf/shelf_io.dart' as io;
import 'package:shelf_static/shelf_static.dart';
void main() {
// Assumes the server lives in bin/ and that `pub build` ran
var pathToBuild = join(dirname(Platform.script.toFilePath()),
'..', 'web');
var handler = createStaticHandler(pathToBuild,
defaultDocument: 'index.html');
var portEnv = Platform.environment['PORT'];
var port = portEnv == null ? 9999 : int.parse(portEnv);
runZoned(() {
io.serve(handler, '0.0.0.0', port);
print("Serving $pathToBuild on port $port");
},
onError: (e, stackTrace) => print('Oh noes! $e $stackTrace'));
}
残りはダーツエディタで作成したテンプレートポリマーアプリケーションです。
問題は、ブラウザーから localhost:9999 にアクセスしようとすると、次のエラーが表示されることです。
リソースの読み込みに失敗しました: サーバーは 404 (見つかりません) のステータスで応答しました http://localhost:9999/packages/paper_elements/roboto.html リソースの読み込みに失敗しました: サーバーは 404 (見つかりません) のステータスで応答しました http://localhost:9999/packages/polymertest/main_app.html リソースの読み込みに失敗しました: サーバーは 404 (見つかりません) のステータスで応答しました http://localhost:9999/packages/polymer/init.dart ファイルの読み込み中にエラーが発生しました: package:polymer/init.dart
より迅速な開発方法のためにこれを行いたいと思います。その場合、変更を加えるたびに Polymer-Dart アプリケーションをビルドする必要はありません。