Обслуживание статического контента в приложении Angular - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу разместить статический контент в корне моего веб-сервера (целевой страницы) вместе с угловым приложением.Я хочу иметь возможность обслуживать статический контент, когда пользователь обращается к «/» (корню) страницы, обслуживая приложение по адресу «/portal».

Я попытался создать отдельные компоненты статического контента, но так как я работаю с предопределенным шаблоном, я не могу включить их (я получаю ошибки разбора во время компиляции из-за дублирования <doctype> и т. д.).

Кроме того, я обслуживаю весьчто-то с Express, поэтому я подумал о том, чтобы использовать утилиты Express

app.use('/',express.static(path.join(__dirname, 'dist/landing')));
app.use('/portal',express.static(path.join(__dirname, 'dist')));

, пока целевая страница работает, и я могу получить доступ к prtal-части, но вижу наубедитесь, что ресурсы (vendor.js, runtime.js и т. д.) не загружаются (404).

Другие комбинации app.use и app.get могут привести меня к точке доступа к порталу иэто работает, но всякий раз, когда я обновляю страницу внутри (я вошел в систему), я получаю пустую страницу (404).

У меня <base> установлен на href='/', но изменение его имеет только сложные вещибольше.

Извините, что я аскино это я новичок в angular / express.Есть ли способ обойти это?Я не смог найти пример, который охватывает обслуживание статических файлов и приложение, использующее экспресс

Кто-нибудь, пожалуйста, помогите мне через это?Я пробовал каждую комбинацию app.use и app.get и читал много документации, не понимая, как это будет работать.

Заранее спасибо.

1 Ответ

0 голосов
/ 14 февраля 2019

двух вещей в приложении Angular должно быть достаточно:

<base href="/portal/">

в index.html

и провайдеров: [... {обеспечить: APP_BASE_HREF, useValue: '/ portal'},]

in app.module

Отредактировано : для режима разработки (сервер веб-пакетов порт 4200) используйте конфигурацию прокси:

"/portal/*.js": {
"target": "http://localhost:4200/",
"secure": false,
"pathRewrite": {
    "^/portal": ""
  }
},

"/portal/*.css": {
"target": "http://localhost:4200/",
"secure": false,
"pathRewrite": {
   "^/portal": ""
  }
},

"/portal/favicon.ico": {
"target": "http://localhost:4200/",
"secure": false,
"pathRewrite": {
   "^/portal": ""
 }

},

"/portal/assets": {
"target": "http://localhost:4200/",
"secure": false,
"pathRewrite": {
  "^/portal": ""
}

}

для «производства», независимо от того, какой бэкэнд вы используете, нужно просто настроить, чтобы он указывал / portal / ... на статический каталог, где было создано ваше приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...