运行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 来表示家以外的地方。