У меня проблемы с компиляцией scss с относительными путями.
Вот моя файловая структура:
src/
├── css/
│ ├── bootstrap.scss
│ ├── main.scss
├── fonts/
│ ├── fonts.css
│ ├── font1.woff2
├── index.html
├── main.css /* Compiled css */
основной.scss:
@import './bootstrap-init';
@import '../fonts/fonts';
шрифты.css:
@font-face {
font-family: 'font1';
src: url('./font1.woff2') format('woff2');
}
Если вы посмотрите на мой fonts.css, src: url(), URL-адрес указывает на правильный файл, который является src/fonts/font1.woff2. Однако после того, как он скомпилирован в src/main.css, src: url() теперь указывает на src/font1.woff2, который не завершается.
Аналогичный вопрос задан здесь для LESS: МЕНЬШЕ импорта CSS и относительных путей
Я использую sass CLI, и это то, что у меня есть на данный момент:
sass --watch css/main.scss main.css
Как мне решить эту проблему? Я могу заменить свои пути, чтобы они всегда указывали из корневой папки, но это не кажется хорошим подходом...






Вы смешиваете импорт CSS и импорт SASS.
Оператор @import в файле CSS заставит браузер загрузить импортированный файл CSS, как если бы это был еще один отдельный тег <style> в вашем документе. Таким образом, все пути в этом импортированном файле относятся к самому себе..
Оператор @import в файле SCSS заставит компилятор SASS скомпилировать импортированный файл css в ваш основной вывод sass, как если бы вы скопировали и вставили его туда. Таким образом, пути в файле SASS всегда относятся к выходному файлу..
Как упоминалось в комментариях, рекомендуется не смешивать файлы .CSS с файлами .SCSS. Скорее всегда используйте SASS для всего, и вы можете использовать переменные SASS для хранения пути к файлам шрифтов.
Простое изменение его на файл scss не сработало, по какой-то причине мне пришлось вернуться, а затем вернуться в папку fonts, и в итоге я получил url('.,/fonts/font1.woff2').
Это не сработает, просто изменив его на файл scss, вы также должны сделать все свои пути во всех ваших файлах scss относительно вашего корня. Я всегда так делаю, и я думаю, что проще всегда думать о вашем SCSS как о пути вывода вашего файла main.css.
Могу ли я предложить вам использовать SCSS и для файла шрифта, а не смешивать CSS и SCSS? Я рекомендую переместить
font.cssв папкуsrc/css/. а затем ссылаясь на шрифт оттуда как../fonts/font1.woff2