2016-05-10 3 views
0

Я пытаюсь развернуть свое приложение на веб-сервере, на которое добавлено приложение на веб-сайт по умолчанию. Я использовал System.js установить BaseUrl и позволил defaultJSExtensions, чтобы быть правдой:Сервер не ищет папку node_modules

<script> 
 
     System.config({ 
 
      baseURL: '/foo', 
 
      defaultJSExtensions: true   
 
    }); 
 

 
    System.import('Scripts/typescript/main.js').then(null, console.error.bind(console)); 
 
    </script>

Проблема возникает, когда он пытается найти моих JS-файлов, таких как «/ Foo/node_modules /angular2/core.js». Он не ищет папку node_modules, он просто ищет «/foo/angular2/core.js».

В моей локальной среде все это работает отлично, оно автоматически ищет папку «node_modules», но когда я публикую ее на сервере, это не так.

Я видел некоторые варианты добавления опции paths в свой файл system.config, но мне любопытно, почему мне не нужно делать это на локальном веб-сервере, но я делаю это на своем тестовом сервере? Это потому, что у меня нет имени сайта foo в моей локальной среде?

Нужно ли устанавливать nodejs на сервер?

Спасибо за любую помощь.

+0

вы добавленная любой базовый пути в основном файле HTML? например , вы используете какой-либо инструмент построения, например Gulp \ Grunt, для публикации файлов? –

+0

Я просто использую Visual Studio 2015 для публикации прямо сейчас. Я не добавил никаких базовых путей, кроме того, что показано в моем коде выше. – Bohms27

ответ

0

вы должны ввести карту в системе конфигурации

System.config({ 
     baseURL: '/foo', 
     defaultJSExtensions: true, 
     map: { 
      "<angular import>": "<adjust URL based upon your structure>node_modules/angular2/core.js" 
     }  
     }); 
+0

Я не совсем понимаю, как это работает. Я использовал baseurl '/ foo' .. что вы подразумеваете под <угловым импортом>. Можете ли вы привести мне пример использования этого? Это все еще не отвечает мне, почему он работает нормально локально, но не на сервере. Зачем мне нужно добавлять карту на сервер? – Bohms27

+0

вы должны предоставить baseurl, откуда будет отображаться ваш контент, все пути будут относиться к этому. поэтому, если вы добавите baseUrl, он будет имитировать конфигурацию вашего сервера, иначе вам нужно сопоставить путь с угловым исходным файлом, используя конфигурацию карты, отвечает ли это на ваш вопрос? где вы можете разрешить использование baseUrl? –

+0

Добавление baseURL помогло с частью System.import. Я просто не понимаю, почему именно в моей локальной среде мне не нужны эти сопоставления, но на сервере я это делаю. Я не очень хорошо разбираюсь в развертывании веб-сайтов на сервере в целом. – Bohms27

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