为了账号安全,请及时绑定邮箱和手机立即绑定

nodejs如何根据不同的设备加载不同的前端文件

nodejs如何根据不同的设备加载不同的前端文件

BIG阳 2018-11-19 17:09:50
项目的前端分为移动端和pc端,然后打包后有两个文件 dist1 和 dist2现在后端用的nodejs且移动端和pc端共用一套后端代码原来只用pc端的时候,nodejs通过以下代码指定静态文件app.use(express.static(path.join(__dirname, '../dist')))现在想通过nodejs判断是移动端orPC端,然后pc端指定dist1,移动端指定dist2。这个该如何实现?更新通过以下代码可以判断是pc还是移动端,app.all('*', (req, res, next) => {   const TYPE = req.headers['user-agent'].toLowerCase()  // console.log(TYPE)   const IS_MOBILE = TYPE.indexOf('android') > -1 || TYPE.indexOf('ios') > -1   if (IS_MOBILE) {     console.log('mobile')     app.use(express.static(path.join(__dirname, '../dist2')))   } else {     console.log('pc')     app.use(express.static(path.join(__dirname, '../dist')))   }   next() })但是带来一个问题,就是第一次pc端访问后,用移动端访问还是pc端的前端资源。第一次移动端访问,之后用pc端访问的还是移动端的资源。是不是node的缓存问题?
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

项目的前端分为移动端和pc端,然后打包后有两个文件 dist1 和 dist2
现在后端用的nodejs且移动端和pc端共用一套后端代码
原来只用pc端的时候,nodejs通过以下代码指定静态文件

app.use(express.static(path.join(__dirname, '../dist')))

现在想通过nodejs判断是移动端orPC端,然后pc端指定dist1,移动端指定dist2。这个该如何实现?

更新通过以下代码可以判断是pc还是移动端,

app.all('*', (req, res, next) => {
  const TYPE = req.headers['user-agent'].toLowerCase()  // console.log(TYPE)
  const IS_MOBILE = TYPE.indexOf('android') > -1 || TYPE.indexOf('ios') > -1
  if (IS_MOBILE) {
    console.log('mobile')
    app.use(express.static(path.join(__dirname, '../dist2')))
  } else {
    console.log('pc')
    app.use(express.static(path.join(__dirname, '../dist')))
  }
  next()
})

但是带来一个问题,就是第一次pc端访问后,用移动端访问还是pc端的前端资源。第一次移动端访问,之后用pc端访问的还是移动端的资源。是不是node的缓存问题?


查看完整回答
反对 回复 2018-11-19
  • 1 回答
  • 0 关注
  • 823 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信