3

app.coffee私は持っています

stylus = require("stylus")

...
app.use stylus.middleware
    debug: true
    src: __dirname + "/stylus"
    dest: __dirname + "/public/css"
    compile: (src) -> 
        console.log(stylus(src))
        return stylus(src)

私は次のようなスタイルを含めましたlayout.jade

link(rel="stylesheet", href="/css/styles.css")

しかし、Chromeのネットワークタブで、styles.cssがキャンセルされたのはなぜですか?

ブラウザを直接ポイントすると/css/styles.css

Cannot GET /css/styles.css

どうしたの?これを修正するにはどうすればよいですか?

4

4 に答える 4

11

staticミドルウェアスタック内のスタイラスミドルウェアの後に、ミドルウェアが適切に構成され、機能し、配置されていますか?スタイラスミドルウェアは、ファイルを読み取って.styl対応するファイルを書き込むだけですが、ミドルウェアがファイルを見つけて提供.cssすることを期待しています。static.css

srcまた、ファイル階層とdestファイル階層は直接対応している必要があることに注意してください。ls -Rつまり、1つのディレクトリ(または同様のもの)の再帰的な内容をリストする場合、すべての中間ディレクトリを数えることさえ意味します。唯一の違いは、ファイルをsrc含み、正確に対応するファイルを含むことです。たとえば、一方にプレフィックスを付けないでください。もう一方には付けないでください。.styldest.css/css

于 2012-12-29T05:57:58.417 に答える
3

最近、同じ問題が発生しました。@ PeterLyonsの回答が正しければ、ディレクトリ名の後にスラッシュを追加しても問題が解決するようです。css

(コーヒーなし)

var stylus = require('stylus');

app.configure(function() {
    app.use(stylus.middleware({
        src: __dirname + '/stylus',
        dest: __dirname + '/public/css/' // <-- additional slash after "css"
    }));
    app.use(express.static(__dirname + '/public'));
});

これがスタイラスのバージョンに関連する問題であり、以前は存在していなかった/存在していなかったかどうかはわかりませんが、それでも私にはかなり混乱しています。

于 2013-08-07T09:52:36.117 に答える
0

これは私を数時間夢中にさせているので、私は共有したいと思いました:)

/publicから外部ファイルを提供しています

したがって、私のスタイルシートは/ public/stylesにあります。私がしなければならなかったのは、プロジェクトのルートにある/stylesというフォルダーに.stylファイルを置くことだけでした。

modules.app.use(modules.stylus.middleware({
    debug: true,
    src: __dirname + '/',
    dest: __dirname + '/public/',
    compile: compile
}));

私はいつも/stylesでスタイルを要求するので、奇抜なパスの要件を回避しました

GET /styles/website.cssは、プロジェクトのルート/ディレクトリから/styles/website.stylを提供します

于 2013-12-22T18:26:41.340 に答える
0

これは私のために働いた

app.use(express.static('public'));

//stylus
function compile(str, path) {
return stylus(str)
.set('filename', path)
}

app.use(stylus.middleware(
{ src:'/public/css'
 , compile: compile
}
));

file.stylをpublic.cssに入れると、そこでもコンパイルされます。問題はsrcディレクトリである必要があります。モジュール/スタイラスを指しているようです。私がexprertでない場合は、この方法で機能します。

于 2015-09-10T21:58:37.133 に答える