Dart Route URLPattern基本URL

时间:2013-11-11 17:03:48

标签: regex dart

运行Dart Route Client example时出错:

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中定义表达式,以避免根据环境重命名它们。具体来说,我如何定义一个代表我的层次结构根的“home”url知道我将使用root + hash来表示除home之外的其他地方。

1 个答案:

答案 0 :(得分:0)

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

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