这几天配的项目 全部静态资源都加载不了,删除koa-less 后可以,但是为什么,求指导
发布于 8 年前 作者 thomas0836 4289 次浏览 来自 问答

屏幕快照 2016-08-26 下午5.42.30.png

全部放在 public 文件下的 都返回这个json

{"_readableState":{"objectMode":false,"highWaterMark":65536,"buffer":[],"length":0,"pipes":null,"pipesCount"
:0,"flowing":null,"ended":false,"endEmitted":false,"reading":false,"sync":true,"needReadable":false,"emittedReadable"
:false,"readableListening":false,"resumeScheduled":false,"defaultEncoding":"utf8","ranOut":false,"awaitDrain"
:0,"readingMore":false,"decoder":null,"encoding":null},"readable":true,"domain":null,"_events":{},"_eventsCount"
:1,"path":"/home/test/hired_apply_wechat/public/css/style.css","fd":null,"flags":"r","mode":438,"autoClose"
:true}

app.js 是这样的

'use strict'

require('./init')
require('./config/global')

const path = require('path')
const Koa = require('koa')
const convert = require('koa-convert')
const mountRoutes = require('./app/common/mount-koa-routes')
const $middlewares = require('./app/common/mount-middlewares')(__dirname)

const app = new Koa()

app.keys = [Config.session_secret]

// middlewares
app.use(convert($middlewares.compress))
app.use(convert($middlewares.bodyparser))
app.use(convert($middlewares.session))
app.use(convert($middlewares.helmet))
app.use(convert($middlewares.wechat_session))
app.use(convert($middlewares.json))
app.use(convert($middlewares.serve))
app.use(convert($middlewares.views))
app.use(convert($middlewares.favicon))
app.use(convert($middlewares.cors))
app.use(convert($middlewares.less))

// for production
if (process.env.NODE_ENV === 'production') {
    app.use(convert($middlewares.log4js()))
    app.use(convert($middlewares.static_cache))

    // mount routes from app/routes folder
    mountRoutes(app, path.join(__dirname, 'app/routes'), false)
} else if (process.env.NODE_ENV === 'test') {
    // for test
    console.log('test')

    // mount routes from app/routes folder
    mountRoutes(app, path.join(__dirname, 'app/routes'), true)
} else {
    // default for development
    app.use(convert($middlewares.logger))

    // request logger
    app.use(convert($middlewares.request_logger))

    // mount routes from app/routes folder
    mountRoutes(app, path.join(__dirname, 'app/routes'), true)
}

// response
app.on('error', function (err, ctx) {
    console.log(err)
})

module.exports = app

serve.js

const path = require('path')
const serve = require('koa-static')

// 检查用户会话
module.exports = serve(path.join(__dirname, '../../public'))

之前的项目 都正常,就是这两天新配的项目 npm install 之后 就会出现这个,把本地的旧项目copy 出来,把依赖删除了 npm install 之后也会这样……请问怎么解决

百度过 _readableState 好似是 io 文件处理的东西…… 不清楚问题出现在哪里 查回 koa-send ,koa-stati 这两个项目这段时间也好似没有更新,求大神帮助 , 急!!!!!!

//---------------------------------------------------------

后续 试出了 试 koa-less 模块引起以上问题,将koa-less 在依赖中删除(npm uninstall koa-less -S)之后就没有问题。但是查回 koa-less 近段时间也没有更新,less 模块有更新,但是单独 install less模块 没有出现以上问题。百思不得其解,希望了解的大牛 指导一下问题所在,怎么解决!!!

git上测试的项目

5 回复

是不是最后的…/…/public 应该是public?

@ZhaoMatt 路径应该是对的 改成 public 之后 就变成了404了

我今天 把中间件一个一个的删除,剩下

app.use(convert($middlewares.serve))
app.use(convert($middlewares.views))

的时候 就恢复正常 然后 加上

app.use(convert($middlewares.compress))

之后 就出现了这个现象 然后 我又把 node_modules 删了,然后 npm updata -S 之后 又全部恢复正常…… 把中间件一个一个加回来 也是 没有问题了

终于试出了问题了

var Koa = require('koa')
const convert = require('koa-convert')
var app = new Koa()
const path = require('path')
var route = require('koa-route')
var views = require('koa-views')
const serve = require('koa-static')
//const lessMiddleware = require('koa-less');


//app.use(convert(lessMiddleware(path.join(__dirname, 'public'))));
app.use(convert(serve(path.join(__dirname, 'public'))));

app.use(convert(views(path.join(__dirname, 'app/views'), {
    extension: 'jade'
})));

app.use(convert(route.get('/', function *() {
    yield this.render('index');
})));

app.listen(3001)

开了一个小的程序测试,发现 还没有加 koa-less 的时候 还是一切正常的,添加了 koa-less 之后就 出现问题,无论是怎样update ,重新下载也是,在代码中 注释了 koa-less 的调用后,问题依然,直到npm uninstall koa-less -S 之后,又恢复正常。然后在 npm i koa-less -S ,代码还没有调用 就已经不行了

怎么没有人 了解么

回到顶部