(四)koa-static 静态资源

之前说过,当服务器遇到 src、href 等链接外部资源的标签时,会把 引用路径当作 res.url 路径去请求,那么在 koa 中遇到这种情况,需要借助于 中间件 koa-static

(1) 安装 koa-static

npm i koa-static --save

(2) 使用

代码:

const Koa = require('koa')
const app = new Koa()
const views = require('koa-views')
const bodyparser = require('koa-bodyparser')
const Router = require('koa-router')
const path = require('path')
const router = new Router()
const serve = require('koa-static')
app.use(bodyparser())

// 静态资源跟路径 serve(path)
app.use(serve(path.join(__dirname, 'public')))

app.use(views(path.join(__dirname, 'views'), {
  extension: 'ejs'
}))

router.get('/', async (ctx) => {
  await ctx.render('index')
})

app.use(router.routes())
app.listen(3000)

index.ejs:

路径是相对于静态资源根路径的

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>index</title>
  <link rel="stylesheet" href="/index.css">
</head>
<body>
  <div class="content">11</div>
  <img src="/actor.jpg" alt="">
  <script src='/index.js'></script>
</body>
</html>

单独访问静态资源:

http://local.djtest.cn:3000/index.css

http://local.djtest.cn:3000/actor.jpg

http://local.djtest.cn:3000/index.js

原理:当访问的时候,先去设置的静态资源根目录下找,找到读取文件内容,找不到再next()

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值