我有一个相当复杂的问题,因为我最初使用没有基本URL的Yeoman fullstack-angular生成器开发了一个MEAN应用程序。在开发中http://localhost:9000/工作得很好。
进入生产阶段,我使用具有特定路径example.com/foo的反向Apache代理来提供http://localhost:9000。现在当我加载example.com/foo时,我得到了一堆404错误(当然)因为例如example.com/app,example.com/bower_components不存在。
我有点离开我的联盟而且没有从哪里开始,是否有一些Express / Angular / etc配置变量我应该看一下以帮助进行此迁移?
server / config / express.js没有提示,我无法在Grunt文件中找到任何东西来使wiredep编译正确的链接。或许甚至可以在Apache中做到这一点......
答案 0 :(得分:1)
澄清一下,问题是我需要在基本URL / foo后面部署一个MEAN应用程序。那样做我:
1)使用以下Apache规则:
RewriteEngine on
RewriteRule ^/foo/(.*)$ http://localhost:9000/$1 [P]
2)现在我们只需要将所有请求发送到example.com/foo/whatever。将index.html中的基本标记编辑为:
<base href="/foo/" />
3)使所有href和服务调用相对而不是绝对(Angular提供程序使用<base>
标记)