nodejs/jade/express 在 mvc 中:无法让手写笔编译文件
nodejs/jade/express in mvc: cannot get stylus to compile files
我正在跟随 this tutorial 使用 node.js、Express 和 Jade 设置正确的 MVC 项目。它很好用。我只是在设置手写笔和笔尖时遇到问题。
我的文件系统:
/
| app
| controllers
| index.server.controller.js
| models
| routes
| index.server.routes.js
| views
| stylesheets
| style.styl
| index.jade
| config
| env
| config.js
| express.js
| node_modules
| ...
| public
| images
| scripts
| stylesheets
| style1.css
| package.json
| server.js
server.js:
var port = 8888
var express = require('./config/express')
var app = express()
app.listen(port)
console.log('server is running on port: ' + port)
express.js:
var express = require('express')
var stylus = require('stylus')
var nib = require('nib')
module.exports = function() {
var app = express()
app.set('views', './app/views')
app.set('view engine', 'jade')
require('../app/routes/index.server.routes.js')(app)
app.use(stylus.middleware({
src: __dirname + '/app/views',
dest: __dirname + '/public'
}))
app.use(express.static('./public'))
return app
}
index.server.routes.js:
module.exports = function(app) {
var index = require('../controllers/index.server.controller')
app.get('/', index.render)
}
index.server.controller.js:
exports.render = function(req, res) {
res.render('index', {
title: 'hello world',
header: 'hi tahr'
})
}
我知道我什至没有尝试 运行 nib 在这里,它甚至不会编译 .styl 文件。我尝试了数千种不同的方法来实际添加这个中间件。我试着在路由器、静态等之前和之后添加它
其他可能相关的文件:
- style1.css 只是一些随机的 .css 文件,用于检查它们是否正确加载。 Jade 会很好地加载它。
- config.js 为空。
据我了解它是这样工作的:server.js 要求 express.js 初始化和配置自身并等待获得完成的 express 对象。
Express 向路由器请求 index.server.routers.js 文件,该文件又要求 index.server.controller.js 做一些事情。它完成它的工作,完成后 express.js 可以 return 应用程序到 server.js 它将开始侦听端口 8888。
我知道这可能与我订购文件的顺序有关,可能是因为我渲染得太早或其他原因......但那些 .styl 文件仍然应该出现!使用 debug: true 不会在控制台中显示任何内容,唯一的消息是 "server is running on port: 8888".
Firefox 开发人员工具显示 style1.css 正确加载,而 style.css 的查询失败并显示 404(因为没有 Stylus 编译的此类文件)。
经过数小时(字面意思)后我放弃并寻求你的帮助,Whosebugers。
经过一段时间的斗争,我发现最好的解决方案是使用:
npm install -g stylus
stylus -w /public/stylesheets&
用于监视文件更改和自动编译的异步任务。虽然不知道如何让它在 Windows 下工作,但说实话我不在乎。
我正在跟随 this tutorial 使用 node.js、Express 和 Jade 设置正确的 MVC 项目。它很好用。我只是在设置手写笔和笔尖时遇到问题。
我的文件系统:
/
| app
| controllers
| index.server.controller.js
| models
| routes
| index.server.routes.js
| views
| stylesheets
| style.styl
| index.jade
| config
| env
| config.js
| express.js
| node_modules
| ...
| public
| images
| scripts
| stylesheets
| style1.css
| package.json
| server.js
server.js:
var port = 8888
var express = require('./config/express')
var app = express()
app.listen(port)
console.log('server is running on port: ' + port)
express.js:
var express = require('express')
var stylus = require('stylus')
var nib = require('nib')
module.exports = function() {
var app = express()
app.set('views', './app/views')
app.set('view engine', 'jade')
require('../app/routes/index.server.routes.js')(app)
app.use(stylus.middleware({
src: __dirname + '/app/views',
dest: __dirname + '/public'
}))
app.use(express.static('./public'))
return app
}
index.server.routes.js:
module.exports = function(app) {
var index = require('../controllers/index.server.controller')
app.get('/', index.render)
}
index.server.controller.js:
exports.render = function(req, res) {
res.render('index', {
title: 'hello world',
header: 'hi tahr'
})
}
我知道我什至没有尝试 运行 nib 在这里,它甚至不会编译 .styl 文件。我尝试了数千种不同的方法来实际添加这个中间件。我试着在路由器、静态等之前和之后添加它
其他可能相关的文件:
- style1.css 只是一些随机的 .css 文件,用于检查它们是否正确加载。 Jade 会很好地加载它。
- config.js 为空。
据我了解它是这样工作的:server.js 要求 express.js 初始化和配置自身并等待获得完成的 express 对象。
Express 向路由器请求 index.server.routers.js 文件,该文件又要求 index.server.controller.js 做一些事情。它完成它的工作,完成后 express.js 可以 return 应用程序到 server.js 它将开始侦听端口 8888。
我知道这可能与我订购文件的顺序有关,可能是因为我渲染得太早或其他原因......但那些 .styl 文件仍然应该出现!使用 debug: true 不会在控制台中显示任何内容,唯一的消息是 "server is running on port: 8888".
Firefox 开发人员工具显示 style1.css 正确加载,而 style.css 的查询失败并显示 404(因为没有 Stylus 编译的此类文件)。
经过数小时(字面意思)后我放弃并寻求你的帮助,Whosebugers。
经过一段时间的斗争,我发现最好的解决方案是使用:
npm install -g stylus
stylus -w /public/stylesheets&
用于监视文件更改和自动编译的异步任务。虽然不知道如何让它在 Windows 下工作,但说实话我不在乎。