我目前正在开发一个带有节点后端的ember前端。
在我的ember-cli应用程序中,我设置了一个.ember-cli文件来代理对节点的请求:
{
"proxy": "http://localhost:3000"
}我还不得不在contentSecurityPolicy中设置一大堆规则,以避免跨站点问题。
我从ember server开始使用ember,它成功地将ajax请求代理到了我的节点后端-尽管它也代理了来自其他库的ajax请求,比如facebook到node (以404失败)。
ember内容由http://localhost:4200/提供
我也有一个静态登录页面直接从节点服务,我可以通过http://localhost:3000/home访问
有没有一种更好的方式来设置它,使其更像在生产中,所有内容都从一个地址提供?或者我必须在这种隔离模式下进行开发?
在这两个应用程序前面的代理可能会做到这一点,但它仍然需要contentSecurityPolicy的东西,因为从那个角度来看,没有什么是真正不同的。
发布于 2015-06-14 21:18:07
在我最新的应用程序中,我一直使用Ember.js作为前端,node.js + express + mongodb作为后端。
我正在运行两个服务器- nginx用于/dist目录(静态文件,图像等)在端口80和节点服务器上,用于其他端口上的API。将以/api/v1(动态请求)开头的请求代理到express服务器:
upstream app_domainName.com {
server ip.co.me.shere:1234; # port of node.js server running
keepalive 8;
}
location /api/v1/ {
proxy_pass http://app_domainName.com;
proxy_next_upstream error timeout invalid_header http_500 http_502
http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}我不想通过express server提供静态文件,因为nginx在处理它们方面似乎有更好的性能。
发布于 2015-06-15 21:45:37
当您运行ember serve时,ember会在每次保存文件时不断更新它的dist目录。
我将ember的dist目录符号链接到我的服务器的目录中,然后我告诉hapi '/‘路由应该回复一个基本上是ember的index.html文件副本的视图,并打开一个到/dist/assets的路由(这是您所有的ember js代码所在的位置)。
在终端中,只需打开两个选项卡,一次运行ember server,第二次运行您的服务器。
这从你的服务器端口提供了所有服务,每次保存文件时都会保持最新状态。
https://stackoverflow.com/questions/30825907
复制相似问题