2015-06-04 11 views
5

Tôi đã cài đặt các module node-sass-middleware trên ứng dụng nhanh của tôi, nhưng tôi không nhận được làm việc đó, chỉ vì các middleware đang đọc một nguồn không chính xác, khi tôi gỡ lỗi giao diện điều khiển log là:Tại sao node-sass-middleware không hoạt động?

GET/200 558.983 ms - 4651 
    source: /home/karim/Snippets/my-financial/public/stylesheets/sass/stylesheets/main.sass 
    dest: /home/karim/Snippets/my-financial/public/stylesheets/stylesheets/main.css 
    read: /home/karim/Snippets/my-financial/public/stylesheets/stylesheets/main.css 

mà cả hai thư mục sai, tại sao phần mềm trung gian đang thêm chuỗi stylesheets/ giữa source/dest (..public/stylesheets/sass/) và .sass file/.css file (main.sassmain.css)?

tôi có cấu hình này bên app.js tôi:

var sassMiddleware = require('node-sass-middleware'); 
... 
... 
var app = express(); 

app.use(sassMiddleware({ 
    src: path.join(__dirname, 'public/stylesheets/sass'), 
    dest: path.join(__dirname, 'public/stylesheets'), 
    debug: true, 
    indentedSyntax: true, 
    outputStyle: 'compressed' 
})); 

Rõ ràng đây không phải là biên dịch bất cứ điều gì, bởi vì các thư mục là sai. Bên trong thư mục ..public/stylesheets/sass/ tôi chỉ có một tệp, main.sass mà tôi muốn biên dịch và di chuyển kết quả bên ngoài thư mục sass/, ý tôi là tại ..public/stylesheets/.

Trả lời

6

Đó là bởi vì - tôi khá chắc chắn - trong hồ sơ html của bạn có cái gì đó như thế:

<head> 

    <!--All your head stuff and--> 
    <link rel="stylesheet" href="/stylesheets/main.css"/> 

</head> 

- Cho phép gọi đó href như yourAwesomeHref trong chốc lát.

Khi máy chủ của bạn nhận được bất kỳ yêu cầu get, middleware sẽ tìm kiếm biên soạnmain.sass trên /home/karim/Snippets/my-financial/public/stylesheets (dest lựa chọn cho các middleware) sau bởi yourAwesomeHref, dẫn đến tuyến đường này:

/home/karim/Snippets/my-financial/public/stylesheets/stylesheets/main.css 

Những tập tin đó rõ ràng không tồn tại chút nào! Vì vậy, bạn phải thêm prefix: "/stylesheets" vào phần mềm trung gian của mình để tránh sự cố đó.

Mã cuối cùng là:

var sassMiddleware = require('node-sass-middleware'); 
... 
... 
var app = express(); 

app.use(sassMiddleware({ 
    src: path.join(__dirname, 'public/stylesheets/sass'), 
    dest: path.join(__dirname, 'public/stylesheets'), 
    debug: true, 
    indentedSyntax: true, 
    outputStyle: 'compressed', 
    prefix: '/stylesheets' 
})); 
+0

Bạn đã cứu sống tôi: D –

Các vấn đề liên quan