2012-06-07 3 views
4

Я установил как Apache, так и Meteor за NginX через обратный прокси (на сервере Ubuntu). Apache отображается непосредственно как baseURL (www.mydomain.com/), а Meteor отображается как подпапка (www.mydomain.com/live/).Как исправить базовый url Meteor в конфигурации обратного прокси NginX?

Проблема, с которой я сталкиваюсь, заключается в том, что мой тест Meteor (который работает так, как ожидается, на порту 3000) перестает работать за NginX, поскольку каждая ссылка (CSS, Javascript, template) абсолютна для 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 или программно.

EDIT: Новый пакет «абсолютного url» в Meteor 0.4.0 исправил проблему!

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

+0

Поскольку это более проблема на основе сервера вы могли бы ваш вопрос лучше подходит в [Pro Вебмастера] (http://webmasters.stackexchange.com/). –

+0

@adamjansch - я попробую, но поскольку разработчики Meteor используют [StackOverflow] (http://www.meteor.com/join-us) как способ получить обратную связь и взаимодействовать с разработчиками, я решил это был (и до сих пор) лучший способ пойти в данный момент. – kinologik

ответ

5

Новый пакет «абсолютного url» в Meteor 0.4.0 исправил проблему.

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

+3

Это больше не применяется, поскольку пакет устарел в пользу Meteor.absoluteUrl() и переменной ROV_URL. Я попытался установить «ROOT_URL», и хотя он меняет URL-адреса, которые производит Meteor.absoluteUrl, он, похоже, не влияет на URL-адрес, который использует Meteor для включения js-файла приложения (при запуске пакетной версии). – SuitedSloth

+3

Имейте ту же проблему, хотя вопрос немного устарел. Как вы это решаете? – mfaerevaag

1

Почему вы в том числе скрипты и стили в вашем <head> с Метеор? Все, что входит в ваш каталог проектов метеоров, будь то 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> 

Простите меня, если я не понимаю проблему.

+1

Я не включаю эти сценарии самостоятельно ... они автоматически включаются Метером. Я использовал URL-адреса? Abc в моем примере вместо свернутых, созданных Meteor (т. Е.? 078ed06e57d7119bc9e3386e8a5ccebc236b0042) для удобства чтения. Виноват. – kinologik

Смежные вопросы