我已经通过反向代理(在 Ubuntu 服务器上)在 NginX 后面安装了 Apache 和 Meteor。Apache 直接映射为 baseURL (www.mydomain.com/),Meteor 映射为子文件夹 (www.mydomain.com/live/)。
我遇到的问题是我的 Meteor 测试(在端口 3000 上按预期工作)停止在 NginX 后面工作,因为每个引用(CSS、Javascript、模板)都是 baseURL 的绝对引用。
<html>
<head>
<link rel="stylesheet" href="/live.css?abc">
<script type="text/javascript" src="/packages/underscore/underscore.js?efg"></script>
...
<script type="text/javascript" src="/template.live.js?hij"></script>
<script type="text/javascript" src="/live.js?klm"></script>
</head>
显然,由于 Apache 是在 baseURL 上映射的,所以通过 NginX 测试时找不到这些文件。
解决问题的最佳方法是什么?系统管理不是我的强项,Meteor 是我第一次接触服务器端 javascript。所以我什至不知道这是否可以修复,如果可以,是通过服务器配置、Meteor 配置还是以编程方式完成。
编辑:Meteor 0.4.0 中新的“absolute-url”包解决了这个问题!