5

我已经通过反向代理(在 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”包解决了这个问题!

http://docs.meteor.com/#absoluteurl

4

2 回答 2

6

Meteor 0.4.0 中新的“absolute-url”包解决了这个问题。

http://docs.meteor.com/#absoluteurl

于 2012-09-05T15:18:55.773 回答
1

为什么在<head>Meteor 中包含脚本和样式?您的流星项目目录中包含的任何内容,无论是 js、html 还是 css,都将被捆绑并提供给客户端,而不会使用 和 包含在您的 HTML<link><script>

如果你必须在你的文件中包含一些东西<head>,为什么不使用包含子文件夹的绝对路径呢?

<html>
<head>
  <link rel="stylesheet" href="/live/live.css?abc">
  <script type="text/javascript" src="/live/packages/underscore/underscore.js?efg"></script>
  ...
  <script type="text/javascript" src="/live/template.live.js?hij"></script>
  <script type="text/javascript" src="/live/live.js?klm"></script>
</head>

如果我误解了这个问题,请原谅我。

于 2012-07-16T15:15:41.000 回答