在这个问题中,“集成”是指从另一个web应用中的某个路径调用的angular应用,而“自托管”是指使用ng serve --open命令从VS代码等工具运行,其中根url被设置为src文件夹。
在MVC中,有诸如Url.Action()和Url.Conntent()这样的指令,可以用来规范化应用程序中任何位置的相对路径。
我一直在读关于APP_BASE_REF的文章,然而,我认为那不会起作用。有没有可能使用一种机制来允许类似于--> <img ng-fromAppRoot('~/assets/my.png')>的构造。
此外,在css中,像background:url("~/assets/my.png")这样的构造可以在“集成”模式下工作,但不能在“自托管”模式下工作,反之亦然。
当"Integerated“时,将根url作为应用程序初始化器的一部分传入可能是解决方案的一部分。
这通常是如何处理的,我正在寻找一种不需要更改代码就可以在调试/发布之间切换的解决方案?
发布于 2019-08-08 21:46:27
如果你不喜欢漂亮的url,你可以使用HashLocationStrategy (docs)和删除所有的基本url。只需使用<img src="assets/logo.svg">等资源的相对链接即可。
如果您需要好的URL,那么您应该创建自己的函数,它的工作方式类似于您所描述的Url.Action()和Url.Content()。
https://stackoverflow.com/questions/57413760
复制相似问题