0

使用しようとしていますが、自分のファイルnode-sass-middlewareを作成していません。.css.scss

私のファイル構造(簡略化)は

- node-modules
- public
     |- common
     |     |-sass
     |     |     |-style.scss
     |     |-css
- server.js

そしてコードはserver.js持っています

var cssLoc =  __dirname + "\\public\\common\\css";
var cssDest =  __dirname + "\\public\\common";
console.log(cssLoc);
console.log(cssDest);
app.use(sass({
    src: cssLoc,
    dest: cssDest,
    debug: true,
    outputStyle: 'compressed'
}));

app.use(express.static(__dirname + '/public'));

これが機能しない理由がわかりません。とてもイライラします。

4

2 に答える 2

9

それが機能していない可能性が非常に高い理由は、node-sass-middlewareがsrcおよびdestプロパティで指定されたパスを取得し、html のローカルcssファイル参照を参照するという紛らわしいためです。タグを参照し、それらが参照するパスを取得し、指定されたsrcパスとdestパスでそれらの正確なパスを探します。

例 (app.js ファイル内):

var nodeSassMiddleware = require('node-sass-middleware');

app.use(nodeSassMiddleware({
   src: path.join(__dirname, 'assets'),
   dest: path.join(__dirname, 'public')
});

次に、ベース html ファイルに次のようなリンク タグが含まれます。

<link rel="stylesheet" type="text/css" href="/immediate/style.css"

node-sass-middlewareは /assets/immediate/style.scss を探し、そのファイルを /public/immediate/style.css に出力します

何が起こっているのかを理解すると、実際には非常に気の利いたものです:)、コンソールでサーバーを起動し、ブラウザーでリンクにアクセスすると、コンソールは実際に使用されているソースと宛先のパスをログに記録します.

これを理解している間、頭を壁にぶつけました。

于 2015-07-28T01:23:09.527 に答える