【发布时间】:2013-11-11 17:03:47
【问题描述】:
运行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 以外的地方。
【问题讨论】: