我正在使用gulp来缩小并将我的html视图从dev复制到prod目录。我遇到的问题是,我需要在我的自定义指令的templateUrl参数中考虑更改目录结构。
例如,如果dev和prod看起来像:
dev - > js - >观点 - > view.html
和
prod - > js - >观点 - > view.html
我的指令看起来像:
directive = {
templateUrl = 'dev/js/views/view.html'
}
当然,这在dev中运行良好,但是当我构建我的生产应用程序时,它不起作用......
有没有一种标准方法可以解决这个问题?我是否只需要放弃拥有两个不同的视图目录(一个用于dev,一个用于prod)?
提前致谢。
答案 0 :(得分:0)
您可以在构建时使用令牌替换您的URL(或其他值)。看一下gulp-token-replace节点模块。
基本上你最终会得到的是
directive = {
templateUrl = {{url}}
}
在您的gulp配置中,您可以根据正在进行的构建类型更改url
。
Here是一篇很好的文章,展示了它如何完成gulp和其他系统。
答案 1 :(得分:0)
将
<base href="/dev/">
为你工作?你能让服务器发出这个吗?所以当它从一个ENV'升到另一个ENV时它才起作用。
另外,你的网络服务器/平台也许可以为你做这个,ASP.NET就是“〜”
另外,请查看Stating directive templateUrl relative to root
史蒂夫
答案 2 :(得分:0)
定义常量
app.constant('APP_CONFIG', {
'ENVIRONMENT': 'dev/prod'
});
<强>指令强>
(在指令中注入APP_CONFIG)
directive: {
templateUrl: function () {
return APP_CONFIG.ENVIRONMENT === 'dev' ? '/dev/path' : 'prod/path'
}
}