Монако-редактор и веб-сервер не работают

Я использую компонент ngx-monaco-editor вместе с Angular 5. Монако-редактор нормально загружается на localhost, но не на моем dev-сервере.

Не удалось загрузить скрипт с источником " https://se-dnexec.cic.muc/assets/monaco/vs/loader.js ".

Это моя конфигурация webpack.common (под плагинами):

 new WriteFilePlugin(),
 new CopyWebpackPlugin([
    {
      from: 'src/assets',
      to: 'assets'
    },
    {
      from: 'src/meta'
    },
    {
      from: 'node_modules/ngx-monaco-editor/assets/monaco',
      to: 'assets/monaco/',
    }
  ],
    isProd ? {
      ignore: ['mock-data/**/*']
    } : undefined
  ),

В webpack.dev я использую конфигурацию от webpack.common.

Когда я запускаю приложение с локального хоста под активами, я вижу это. localhost_monaco

Но при запуске с dev-сервера я вижу, что папка monaco отсутствует:

devserver_monaco

Я использую:

  • copy-webpack-plugin: "^ 4.5.1",
  • write-file-webpack-plugin: "^ 4.2.0"
  • веб-пакет: "^ 3.11.0",
  • webpack-dev-server: "~ 2.7.1",

Я ожидаю, что когда я запускаю dev-сервер, который находится в папке assets, папка monaco также копируется, но по какой-то причине это не так. Может быть, кто-то испытал ту же проблему и может мне помочь. (Если нужна дополнительная информация, я могу предоставить ее).

Я пробовал следующее решение: не копирует файлы в фактическую папку вывода при использовании webpack-dev-server

2 ответа

Решение

Я использую компонент ngx-monaco-editor с Angular 5. Я проверил, что путь каким-то образом неправильный, локально он работает, но на сервере - нет. Так что это решение, которое я должен был сделать:

В NgxMonacoEditorConfig я сделал следующее:

baseUrl: './assets'

Если вы используете nginx для обслуживания своего производственного дистрибутива, вам нужно переопределить путь ресурсов для monaco следующим образом:

server {

    server_name localhost;
    listen      80;
    root        /usr/share/nginx/html;
    index       index.html index.htm;

    location / {

        try_files $uri $uri/ /index.html =404;

    }

    location /assets/monaco/vs {

        root /usr/share/nginx/html;
        try_files $uri $uri/ /index.html;

    }

}

Надеюсь, это сэкономит кому-то еще 5 часов!

Другие вопросы по тегам