我正在尝试使用架子静态服务器为聚合物应用程序提供服务。我创建下一个结构:
聚合物应用 - 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'));
}
其余的是 dart 编辑器创建的模板聚合物应用程序。
问题是当我尝试从浏览器访问 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
我想这样做是为了更快的发展方式。在这种情况下,我不需要每次进行更改时都构建聚合物飞镖应用程序。