【问题标题】:Stylus not being applied to my jade file after res.render()res.render() 后手写笔未应用于我的玉文件
【发布时间】:2013-10-08 21:22:11
【问题描述】:

我似乎无法将我项目中的 stylus 文件编译成一个 css 文件以与玉文件一起使用。翡翠文件的内容正在向浏览器显示,但没有按照 .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 和 node_modules 目录也都在根目录下。没有“公共”目录。

【问题讨论】:

    标签: javascript node.js express pug stylus


    【解决方案1】:
    app.use(stylus.middleware({
            dest: __dirname + '/public',
            src: __dirname + "/css",
            compile: compile
        }
    ))
    

    目的地应该在公共目录中。并且您的 src 包含您的 .styl 文件

    【讨论】:

    • 我将 style.styl 和 style.css 文件都放在了 '/public/stylesheets' 文件夹中,并将 src 和 dest 都更改为 __dirname + "/public/stylesheets"。我仍然没有看到到浏览器的格式化输出,只有 index.jade 文件的内容。
    【解决方案2】:

    答案在我调用 app.use(express.static()) 命令的地方,它需要在代码之后才能使用手写笔中间件。我发现这篇文章有助于解决我的问题:

    [1]:文章http://www.quietless.com/kitchen/why-isnt-stylus-compiling-my-css/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多