Я создаю экспресс-приложение с Sass, и я не внес никаких изменений в мой проект, так как в последний раз компилировал мои файлы .scss и .css.Почему Sass не видит мой файл .scss в приложении Express?
Команда:
sass sass/style.scss style.css
работал в последний раз, когда я работал над проектом, но сегодня я получаю эту ошибку:
Errno::ENOENT: No such file or directory @ rb_sysopen - sass/style.scss
Use --trace for backtrace.
Опять же, я не сделал какие-либо новые изменения так как это последний раз работало, и я даже вернулся к предыдущему git commit.
В моем app.js, я node-sass-middleware
настроен так:
var sassMiddleware = require('node-sass-middleware');
и это:
app.use(sassMiddleware({
src: path.join(__dirname, 'public/stylesheets/sass'),
dest: path.join(__dirname, 'public/stylesheets'),
debug: true,
indentedSyntax: true,
outputStyle: 'compressed',
prefix: '/stylesheets'
}));
app.use(express.static(path.join(__dirname, 'public')));
и моя структура public
файла в My-Website/public
выглядит следующим образом:
├── public
└── stylesheets
├── sass
└── style.scss
├── style.css
└── style.css.map
Кроме того, в моем layout.hbs
файле в моем views
папку (я использую язык рули шаблонный для Express), у меня есть эта связь в моей голове:
<link rel='stylesheet' href='/stylesheets/style.css' />
Что происходит?
Похоже, у вас есть опечатка: 'stylesheets/sass/style.scss', а не' sass/style.scss' – MayorMonty
Это приводит к той же ошибке. И на основании ответа на этот вопрос: http://stackoverflow.com/questions/30654312/why-node-sass-middleware-is-not-working, у меня создалось впечатление, что Сасс будет искать скомпилированный стиль .scss' на 'My-Website/public/stylesheets' (который является' dest' в конфигурации промежуточного программного обеспечения). – Alya
Здесь имеется несколько компонентов, команда 'sass' и' node-sass-middleware', которая использует команду 'sass' для компиляции листов. В начале сообщения вы ссылаетесь на команду 'sass', которая не работает, а затем вы переходите в свой экспресс-скрипт, который, как я полагаю, означает, что он также не работает. Проверьте текущий рабочий каталог и убедитесь, что он 'public/stylesheets /' при запуске первой команды – MayorMonty