Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript res.render()之后,手写笔未应用于我的jade文件_Javascript_Node.js_Express_Pug_Stylus - Fatal编程技术网

Javascript res.render()之后,手写笔未应用于我的jade文件

Javascript res.render()之后,手写笔未应用于我的jade文件,javascript,node.js,express,pug,stylus,Javascript,Node.js,Express,Pug,Stylus,我似乎无法将项目中的手写笔文件编译成css文件,以便与jade文件一起使用。jade文件的内容将显示在浏览器中,但未按照.styl文件中指定的格式进行格式化 我认为这与我使用的路径有关。我对“/public”感到困惑,它应该是我在项目树中实际创建的目录,还是只是当前位置的占位符或类似的东西 以下是我所需的模块: var express = require('express'), connect = require('connect'), account = require('./

我似乎无法将项目中的手写笔文件编译成css文件,以便与jade文件一起使用。jade文件的内容将显示在浏览器中,但未按照.styl文件中指定的格式进行格式化

我认为这与我使用的路径有关。我对“/public”感到困惑,它应该是我在项目树中实际创建的目录,还是只是当前位置的占位符或类似的东西

以下是我所需的模块:

var express = require('express'),
    connect = require('connect'),
    account = require('./account'),
    stylus = require('stylus'),
    nib = require('nib'),
    http = require('http'),
    path = require('path');
var app = express();
下面是我的配置代码:

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

app.configure('development', function(){
    app.set('port', process.env.PORT || 8888);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.static(path.join(__dirname, 'public')));
    app.use(express.bodyParser());
    app.use(express.cookieParser('1234567890QWERTY'));
    app.use(express.session({secret: '1234567890QWERTY'}));
    app.use(express.errorHandler());
    app.use(stylus.middleware({
            src: __dirname + '/public',
            dest: __dirname + "/css",
            compile: compile
        }
    ));
});
下面是我的处理程序:

app.get('/', function(req, res) {
      res.render('index',{title: 'Home'});
});
我的目录树当前将我的脚本文件放在项目根目录下,然后样式表、视图、css和节点模块目录也都放在根目录下。没有“公共”目录

app.use(stylus.middleware({
        dest: __dirname + '/public',
        src: __dirname + "/css",
        compile: compile
    }
))

目的地应位于公共目录中。并且你的src包含你的.styl文件

答案是在我调用我的应用程序的地方。使用(express.static())命令,它需要在代码之后使用手写笔中间件。我发现这篇文章为解决我的问题提供了信息:


[1] :article

我将style.styl和style.css文件放在“/public/stylesheets”文件夹中,并将src和dest都更改为u dirname+“/public/stylesheets”。我仍然没有看到浏览器的格式化输出,只是index.jade文件的内容。