更新:更新到 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 后,我无法再重现此问题。据推测,这是早期版本的手写笔中的一个错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top