我一直试图在我的apache服务器上添加一个NodeJS应用(由Yeoman – angular-fullstack生成器构build)。 我发现这个其他回答的问题: 同一台服务器上的Apache和Node.jsbuild议使用这样的ProxyPass:
ProxyPass /node http://localhost:8000/
我遇到的问题是,我的应用程序从index.html开始,包含一些带有href的文件。 由于这些hrefs不是这样开始的
href="/node/..."
它们不被Proxypassredirect,从而导致404错误。
我不能只改变所有的hrefs:这意味着我需要在我的3环境中重新开始:开发,生产和testing,即使我这样做,每次我都会使用Grunt来testing我的应用程序,它无论如何自动重build我的index.html。 (此外,这并不能解决所有问题,当我这样做的时候出现了一些问题)
我唯一能做的就是使用这样的ProxyPass:
ProxyPass / http://localhost:8000/
在那里它可以工作,绝对没有问题,就像我实际上使用本地服务器上的应用程序一样。
唯一剩下的问题是我需要在我的服务器上有两个环境,用于生产和testing,而我不能做
ProxyPass / http://localhost:8000/ ProxyPass / http://localhost:8001/
这显然是行不通的,因为一切都会被redirect到8000端口,所以任何事情都可以到达第二线。
所以,我只剩下两个select:
要么find另一种解决scheme,而不是使用“/”作为redirect到本地主机:8000的标准,将以相同的方式工作(我没有发现任何工作)
或者使用虚拟主机…还有另一个问题:我真的不能解决networking问题,据我所知,在同一台机器上有几个虚拟主机,我需要几个CNAMES(每个虚拟主机一个),但我不知道如何列出/添加CNAMES(我的服务器在Windows Server 2008上运行,无法访问万维网),我的“pipe理工具”中没有任何“DNS”应用程序,米应该按照这个: https : //technet.microsoft.com/en-gb/library/cc753579.aspx
任何帮助将非常欢迎提前致谢!
编辑:我真的认为我的解决scheme是抽动我的Apacheconfiguration。 任何人都可以用来处理服务器configuration帮助我吗? :/
似乎我所缺少的是一个
<base href="/node/">
标签(甚至不知道它,和Yeoman创建它)
我仍然有一个问题:
Socket.io …我真的没有在这里得到我自己的问题:它在node_modules(这是正常的,因为我需要在我的服务器和我的客户端),但试图包括它,因为我之前使用基础href失败。 我甚至不知道它是如何工作的:(index.html:) <script src="socket.io-client/socket.io.js"></script>
这似乎不正确的知道我的项目文件夹是这样的:
[项目根]
-客户
–index.html
-node_modules
–socket.io客户端
— socket.io.js