【发布时间】:2017-04-21 15:17:53
【问题描述】:
我正在使用 Vue Cli 和 webpack 创建一个应用程序,后端使用 NodeJS/Express,前端使用 VueJS。
我想知道是否有办法在我的路线的参数中允许点。
这是我尝试不使用配置时得到的结果
Cannot GET /t/firstname.lastname
这是我的 /src/main.js
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'
import VueResource from 'vue-resource'
import VueAutosize from 'vue-autosize'
import Main from './components/Main.vue'
import Signin from './components/Signin.vue'
// We want to apply VueResource and VueRouter
// to our Vue instance
Vue.use(VueRouter)
Vue.use(VueResource)
Vue.use(VueAutosize)
const router = new VueRouter({
history: true
})
// Pointing routes to the components they should use
router.map({
'/t/:person': {
component: Main
},
'/signin': {
component: Signin
}
})
router.beforeEach(function (transition) {
if (transition.to.path === '/signin' && window.localStorage.length !== 0) {
transition.redirect('/')
} else if (transition.to.path === '/' && window.localStorage.length === 0) {
transition.redirect('/signin')
} else {
transition.next()
}
})
// Any invalid route will redirect to home
router.redirect({
'*': '/404'
})
router.start(App, '#app')
【问题讨论】:
-
我相信vue-router会将url中的param转换成javascript对象,所以不允许使用point。但我用其他标点符号测试过,没关系。如果需要,可以使用正则表达式或可选参数 >https://github.com/vuejs/vue-router/blob/9649929b3646954c7b59d149c570c3d0a96379c9/examples/route-matching/app.js
-
@utiiz 你找到解决方案了吗?我也有同样的问题。
-
这和 Webpack 有什么关系?
-
这是一个 webpack 问题,他们有一个规则,如果 uri 有一个点,那么它就是一个文件,它发生在 express 开发服务器上。
标签: url webpack vue.js parameters