2016-08-14 2 views
1

Я создаю экспресс-приложение с 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' /> 

Что происходит?

+0

Похоже, у вас есть опечатка: 'stylesheets/sass/style.scss', а не' sass/style.scss' – MayorMonty

+0

Это приводит к той же ошибке. И на основании ответа на этот вопрос: http://stackoverflow.com/questions/30654312/why-node-sass-middleware-is-not-working, у меня создалось впечатление, что Сасс будет искать скомпилированный стиль .scss' на 'My-Website/public/stylesheets' (который является' dest' в конфигурации промежуточного программного обеспечения). – Alya

+0

Здесь имеется несколько компонентов, команда 'sass' и' node-sass-middleware', которая использует команду 'sass' для компиляции листов. В начале сообщения вы ссылаетесь на команду 'sass', которая не работает, а затем вы переходите в свой экспресс-скрипт, который, как я полагаю, означает, что он также не работает. Проверьте текущий рабочий каталог и убедитесь, что он 'public/stylesheets /' при запуске первой команды – MayorMonty

ответ

0

Здесь имеется несколько компонентов, команда sass и узло-sass-middleware, которая использует команду sass для компиляции листов. В начале сообщения вы ссылаетесь на команду sass, которая не работает, а затем вы переходите в свой экспресс-скрипт, который, как я полагаю, означает, что он также не работает. Проверьте свой текущий рабочий каталог и убедитесь, что он является общедоступным/stylesheets/при запуске первой команды