У меня есть проект ASP.NET Core MVC, который объединяет общие ресурсы, такие как css / js, которые требовались для нескольких проектов.Поскольку эти проекты имеют разные URL, мне нужно установить абсолютные URL для всех ресурсов, таких как url()
ссылки в css.Например шрифты.
Пробовал разные плагины gulp, но ни один из них не работает с gulp.Например, gulp-ex-css-url-adjuster
:
const cssBundles = [{
sourceFiles: ['ClientScript/Scss/Index.scss'],
targetFile: 'shared-theme.css'
}]
gulp.src(bundle.sourceFiles)
.pipe(sass())
.pipe(urlAdjuster({
prependRelative: 'http://localhost:5001/'
}))
.pipe(cssMin())
.pipe(concat(bundle.targetFile))
.pipe(gulp.dest(cssTargetDir))
Index.scss
импортирует шрифты, например
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: url('/fonts/roboto/roboto-v20-latin-300.eot'); /* IE9 Compat Modes */
src: local('Roboto Light'), local('Roboto-Light'), url('/fonts/roboto/roboto-v20-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/fonts/roboto/roboto-v20-latin-300.woff2') format('woff2'), /* Super Modern Browsers */
url('/fonts/roboto/roboto-v20-latin-300.woff') format('woff'), /* Modern Browsers */
url('/fonts/roboto/roboto-v20-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */
url('/fonts/roboto/roboto-v20-latin-300.svg#Roboto') format('svg'); /* Legacy iOS */
}
Моя цель переписать /fonts/roboto/roboto-v20-latin-300.eot
в http://localhost:5001/fonts/roboto/roboto-v20-latin-300.eot
.Но приведенный выше код gulp js создает неправильные URL:
@font-face{
font-family:Roboto;
font-style:normal;
font-weight:300;
src:url(http:\localhost:5001\fonts\roboto\roboto-v20-latin-300.eot);
src:local("Roboto Light"),local("Roboto-Light"),url(http:\localhost:5001\fonts\roboto\roboto-v20-latin-300.eot) format("embedded-opentype"),url(http:\localhost:5001\fonts\roboto\roboto-v20-latin-300.woff2) format("woff2"),url(http:\localhost:5001\fonts\roboto\roboto-v20-latin-300.woff) format("woff"),url(http:\localhost:5001\fonts\roboto\roboto-v20-latin-300.ttf) format("truetype"),url(http:\localhost:5001\fonts\roboto\roboto-v20-latin-300.svg) format("svg")
}
Это было бы правильно, за исключением того, что он странным образом вставляет \
вместо /
в качестве разделителя.Пробовал http:\/\/localhost:5001\/
, http:////localhost:5001
и некоторые похожие варианты,