2016-05-02 2 views
3

Я работаю над угловым приложением, которое требует, чтобы файлы html были извлечены в виде простых HTML-файлов и в то же время должны были проверить любые <img src="...">, чтобы потребовать эти изображения (в качестве активов). Кроме того, изображения основаны на корневом пути (так /images/something.png), они должны быть разрешены относительно настройки веб-пакета context (базовый путь).Использовать файловый загрузчик и html-loader вместе

Как я могу это достичь? Невозможно заставить html-loader хорошо играть с файловым загрузчиком. Поскольку первый выводит JS-файл (с операторами require), а последний ожидает простой HTML-файл.

ответ

6

Я нашел решение самостоятельно, копая много в исходниках кодеков, о которых идет речь.

В принципе, он не работает по умолчанию, потому что файловый загрузчик ожидает «необработанный» файл, поэтому, если вы хотите вывести HTML-файл, вам нужно иметь источник html, а не JS. Однако html-loader принимает HTML-файл и выводит JS-файл (с активами require и содержимым).

Решение было это глубоко скрыто и фантастический extract-loader, который разбирает JS выходит из HTML-загрузчиком, преобразует его обратно в обычный HTML, активы по-прежнему требуется и заменены даже с хэш для очистки кэша.

Это прекрасно, вы передаете результат файловому загрузчику, и у вас наконец есть ваши html-файлы!

Пример конфигурации

В моем случае, моя конфигурация загрузчика выглядит следующим образом:

'file-loader!extract-loader!html-loader' + '?root=' + encodeURIComponent(sourcePath.toString()) 
+2

Вы описали решение, но не отправлял решение. Пример конфигурации? –

+0

'file-loader! Extract-loader! Html-loader' было достаточно для меня. Обратите внимание, что для html-loader я использовал также ''? Root = '+ encodeURIComponent (sourcePath.toString()) ' –

+0

Да, я тянул свои волосы, чтобы узнать, почему src ="/url "начал игнорироваться, пока я не прочитал что корневые URL игнорируются по умолчанию. Вы использовали? Root =, в то время как я переключился на относительный url. Оба работают. Благодарю. –

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