基本 Express + Stylus 设置问题(获取 ENOENT)
题
更新:更新到 stylus 0.7.4 和 express 2.3.12 后,我无法再重现此问题。据推测,这是早期版本的手写笔中的一个错误。
我正在尝试连接最基本的 Express + 手写笔设置。我希望将 screen.styl 渲染为 css,并在处理 /screen.css 的 GET 时在响应中返回。
我已经调试了手写笔中间件,并且调试器以我无法跟踪的方式跳跃。手写笔中间件代码看起来不错,但是 GET /screen.css
导致 Error: ENOENT, No such file or directory '/Users/plyons/projects/test_stylus/screen.css'
在响应中走出去。
我有一个只有 2 个文件的测试目录(服务器位于咖啡脚本中,但它很简单)。
screen.styl server.coffee
猫服务器.咖啡
express = require 'express'
app = express.createServer()
app.use require('stylus').middleware(__dirname)
app.use express.static __dirname
app.listen 9800
猫屏.styl
a
background-color red
盯着 stylus middleware.js 文件很长一段时间,我认为这个 应该 工作。手写笔中间件肯定正在执行并尝试执行 fs.stat
在两个 .styl
文件,存在,并且 .css
文件,尚不存在,因此 ENOENT
, ,但中间件看起来应该检测到 ENOENT
并毫无问题地处理它(编译 .styl 并将结果保存在 .css 中)。但没有写入 .css 文件。如果这么写的话,系统是设计给中间件调用的 next()
实际上没有在响应中发送任何内容,但是静态提供会找到 .css 文件并将其作为响应发送,对吧?
有人知道我这里出了什么问题吗?
解决方案
更新:更新到 stylus 0.7.4 和 express 2.3.12 后,我无法再重现此问题。据推测,这是早期版本的手写笔中的一个错误。
不隶属于 StackOverflow