项目的前端分为移动端和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的缓存问题?
- 1 回答
- 0 关注
- 821 浏览
添加回答
举报
0/150
提交
取消