3

运行Dart Route Client 示例时出现错误:

Illegal argument(s): No handler found for /MYAPP/web/myapp.html 这是有道理的,因为默认示例将 URLS 定义为

library example.urls;

final one = new UrlPattern('/one');
final two = new UrlPattern('/two');
final home = new UrlPattern('/');

然后处理路线:

 import 'urls.dart' as urls;
 ...
 var router = new Router()
    ..addHandler(urls.one, showOne)
    ..addHandler(urls.two, showTwo)
    ..addHandler(urls.home, (_) => null)
    ..listen();

鉴于我的应用程序将具有不同的基本 URL,具体取决于它在什么环境中运行(本地、开发、测试、生产),并且这些 URL 看起来像这样

http://MYAPP/web/index.html
http://dev.mydomain.com/alpha/index.html
http://dev.mydomain.com/index.html
http://dev.mydomain.com
http://test.mydomain.com/index.html
http://test.mydomain.com
http://mydomain.com/index.html
http://mydomain.com

如何在我的 URLPatterns 中定义表达式以避免必须根据环境重命名它们。具体来说,我如何定义一个表示我的层次结构根的“家”url,知道我将使用 root+hash 来表示家以外的地方。

4

1 回答 1

0

所以看起来示例服务器中的某些代码尚未针对 Dart 1.0 进行更新,因此服务器不会运行,并且该示例需要服务器,因为它使用 pushState。我将修复推送到版本 0.4.6。

要运行该示例,请运行 server.dart,然后将 Dartium 导航到http://127.0.0.1:8080. 如果你想在另一个浏览器中运行它,你必须先用 dart2js 编译 client.html。

于 2013-11-12T03:27:01.540 回答