我正在使用polymer.dart创建单页网络应用,并希望在Google应用引擎上部署它。我在路由时堆叠
我为我的服务器使用redstone和shelf_static,为我的客户端使用route_hierarchical。
import 'package:appengine/appengine.dart';
import 'package:redstone/server.dart' as app;
import 'package:shelf_static/shelf_static.dart';
main() {
var staticHandler = createStaticHandler("web",
defaultDocument: "index.html", serveFilesOutsidePath: true);
app.setShelfHandler(staticHandler);
app.setupConsoleLog();
app.setUp();
runAppEngine(app.handleRequest);
}
import 'package:polymer/polymer.dart';
import 'package:route_hierarchical/client.dart';
@CustomTag('main-app')
class MainApp extends PolymerElement {
final Router router = new Router();
MainApp.created() : super.created();
ready() {
print("Main App: ready()");
router.root
..addRoute(name: 'home', path: '/', enter: showHome, defaultRoute: true)
..addRoute(name: 'login', path: '/#!/login', enter: showLogin);
router.listen();
}
void showHome(RouteEvent event) {
print("Main App: showHome()");
}
void showLogin(RouteEvent event) {
print("Main App: showLogin()");
}
}
如果我使用" pub serve"在本地运行应用程序命令,它的工作原理。
但是,如果我使用" gcloud预览应用程序运行app.yaml"命令,登录路由不起作用并记录错误。
http://prntscr.com/77adww
答案 0 :(得分:1)
我终于搞定了!问题是,我正在运行未转换的输出,就像@Jake MacDonald说的那样。这是怎么回事。
替换
var staticHandler = createStaticHandler("web", defaultDocument: "index.html", serveFilesOutsidePath: true);
与
var staticHandler = createStaticHandler("build/web", defaultDocument: "index.html", serveFilesOutsidePath: true);