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

项目的前端分为移动端和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的缓存问题?


BIG阳
浏览 803回答 1
1回答

繁星淼淼

项目的前端分为移动端和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的缓存问题?
打开App,查看更多内容
随时随地看视频慕课网APP