运行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之外的其他地方。
答案 0 :(得分:0)
因此看起来示例服务器中的某些代码尚未针对Dart 1.0进行更新,因此服务器无法运行,并且该示例需要服务器,因为它使用pushState。我将修复程序推到了0.4.6版本。
要运行该示例,请运行server.dart,然后将Dartium导航到http://127.0.0.1:8080
。如果你想在另一个浏览器中运行它,你必须先用dart2js编译client.html。