Как указать publicPath для Webpack File-loader, когда у localhost есть сегмент URL, а у рабочего сервера нет - PullRequest
0 голосов
/ 02 мая 2019

Я использую Webpack File-Loader для загрузки изображений в background-image в файлах CSS.В локальной среде и на сервере у меня возникли проблемы с различными URL-адресами.

Локально в IIS у меня есть веб-сайт с именем «платформа», поэтому URL-адрес http://localhost/platform.

Производствосервер работает с корневой папкой, поэтому URL-адрес на рабочем месте равен http://application-name.com, без сегмента «платформа».

Теперь я использую обходной путь, при котором я проверяю NODE_ENV и добавляю или нет сегмент «платформа»:

loader: 'file-loader',
options: {
    name: '[path][name].[ext]',
    publicPath: process.env.NODE_ENV === 'development' ? '/platform/' : '/'
}

Этот подход не настолько надежен, поэтому кто-нибудь может помочь мне определить универсальный publicPath?

Ранее я сделал это по-другому:

loader: 'file-loader',
options: {
    name: '[path][name].[ext]',
    publicPath: (url, resourcePath, context) => {
      return `../../../${url}`;
    }
}

Но теперь это не такработать больше для меня, потому что теперь мне нужно запустить свой код в разных местах проекта, и могут быть разные уровни URL:

http://application-name.com/1/2

http://application-name.com/1/2/3
...