vue路由上的#/怎么去掉_vue 路由去掉url中的“#”

本文主要讲述在vue-router中去掉路由上“#”的方法。默认hash模式下“#”会影响客户端获取参数且不美观,将模式改为‘history’可去掉“#”,但打包后页面空白,需修改路径,还需服务端同事设置ng,最终可打开无“#”号的url。

vue-router中默认使用的是hash模式,url中会带有“#”,例如“http://localhost:3000/#/”,

这种情况我们遇到一个问题,就是服务端会在url后面补充参数,我需要拿到这个参数获取信息。

但是有这个“#”,url就变成了“ www.a.com/aaaa?c=1&b=2#&params=3”,客户端要用到params这个参数就拿不到了,如果想拿到就需要再处理一下“#”号。再有url上有个“#”也不太美观。

接下来就改了下vue-router的模式

export default new Router({

mode: 'history',

base:'/'//如果js和css跟html放在同级,这个也是要指定一下路径的。

})

改成‘history’模式,‘#’就去掉了,很开心。

然而打完包以后,页面是空白页。

然后有修改了下路径

把“assetsPublicPath”修改成你的js和css的路径,默认是“/”根路径,肯定是找不到资源的,也不会把资源放在根路径下。

我把js和css和图片这些静态资源放在cdn的,所以这个地方是一个绝对路径。所以router.js中的base去掉,否则在router调转的时候都会加上遗传base设置的路径。

如果“https://a.com”,调整“https://a.com/aa”

如果base设置了只,比如“/dist”,那你的url就变成了“https://a.com/dist/aa”

当然设置到这里还没有完,还需要你的服务端同事或者it同事设置一下ng

root /Users/qiilee/Desktop/vue/dist; 映射到172.20.x.x:128服务器。

至此就可以愉快的打开没有“#”号的url了。

参考文章:https://www.jb51.net/article/194900.htm

<think>好的,我现在需要帮助用户在Vue项目中配置路径,让/system_resources指向/app/system_resources文件夹。首先,我得回忆一下Vue路由配置方法,特别是Vue 2的情况,因为用户提到的是Vue 2。 用户的问题是关于路径别名的配置,可能涉及两个方面:路由配置和Webpack别名设置。路由配置指的是前端路由,比如访问/system_resources时显示某个组件。而别名则是让模块导入时可以用别名代替相对路径,比如在代码中使用@/system_resources这样的路径。但用户的问题看起来更像是希望访问URL路径/system_resources时映射到特定的资源文件夹,或者在前端路由中处理这个路径,指向正确的组件或资源。 首先,我需要确认用户的具体需求。如果用户是想通过URL路径/system_resources来访问位于/app/system_resources文件夹下的静态资源,可能需要配置Vue的publicPath或者将静态资源放在public目录下,然后通过别名访问。或者,如果是前端路由,可能需要配置Vue Router来匹配该路径并渲染对应的组件。 根据引用3,用户的项目是用Vue 2搭建的工程化项目,所以应该使用Vue Router来处理路由。假设用户已经安装了Vue Router,那么需要在router/index.js中定义路由。例如: { path: &#39;/system_resources&#39;, component: () => import(&#39;@/views/SystemResources.vue&#39;) } 但用户希望路径指向的是文件夹,可能是指静态资源的访问路径。这时候可能需要配置Webpack的别名,让/system_resources作为别名指向实际的文件夹路径。Vue CLI使用的是Webpack,所以可以在vue.config.js中配置别名: configureWebpack: { resolve: { alias: { &#39;@system_resources&#39;: path.resolve(__dirname, &#39;app/system_resources&#39;) } } } 这样在代码中就可以用@system_resources来引用该文件夹下的文件。不过用户的问题可能是希望URL路径直接映射到该文件夹下的静态资源。这种情况下,可能需要将静态资源放在public目录下,或者配置devServer的代理。 如果用户是在开发环境中,想通过/system_resources访问到/app/system_resources下的文件,可能需要配置开发服务器的代理。例如,在vue.config.js中: devServer: { proxy: { &#39;/system_resources&#39;: { target: &#39;http://localhost:8080/app/system_resources&#39;, pathRewrite: {&#39;^/system_resources&#39;: &#39;&#39;} } } } 不过这可能不是最佳实践。另一种方法是使用Webpack的别名,将特定的URL路径映射到文件系统的目录。但通常,静态资源应该放在public目录中,这样它们会被直接复制到输出目录,无需经过Webpack处理。用户可能需要将/app/system_resources文件夹放到public目录下,然后通过绝对路径访问,比如/public/system_resources/file.txt,这样在运行时可以通过/system_resources/file.txt访问。 或者,如果用户希望在使用路径别名时,模块导入可以正确解析到该文件夹,那么配置Webpack的alias是正确的做法。例如,在vue.config.js中配置别名,然后在代码中使用import ... from &#39;@system_resources/file&#39;。 但根据用户的问题描述,可能更倾向于URL路径的映射,而不是模块路径的别名。这时候可能需要检查Vue Router的配置是否正确,或者是否需要对静态资源的路径进行处理。如果静态资源需要被正确引用,可能需要设置正确的publicPath,或者在构建时调整输出目录的结构。 可能还需要考虑生产环境和开发环境的差异,确保路径配置在两种环境下都能正常工作。比如,在生产环境中,静态资源可能被部署到服务器的特定目录下,这时候可能需要配置Webpack的publicPath或使用环境变量来动态设置路径。 总结一下,可能的解决方案有: 1. 配置Vue Router的路由,将/system_resources路径指向对应的组件,该组件负责渲染来自/app/system_resources文件夹的内容。 2. 配置Webpack别名,使得在代码中可以通过别名访问该文件夹,但这主要影响模块导入,而不是URL路径。 3. 将静态资源放置在public目录下,利用Vue的静态资源处理机制,直接通过URL访问。 4. 配置开发服务器的代理或重写规则,将特定URL路径映射到文件系统的目录。 需要根据用户的具体使用场景来判断哪一种方法更合适。如果用户是想通过URL直接访问静态文件,那么方法3或4可能适用。如果是前端路由,则方法1正确。用户需要进一步明确需求,但根据问题描述,可能更倾向于路由配置或静态资源的访问路径设置。</think>在Vue 2项目中配置路径映射,可以通过以下两种方式实现: ### 方案一:配置Webpack别名(模块导入) 1. 在项目根目录创建/修改`vue.config.js`文件: ```javascript const path = require(&#39;path&#39;) module.exports = { configureWebpack: { resolve: { alias: { &#39;@system_resources&#39;: path.resolve(__dirname, &#39;app/system_resources&#39;) } } } } ``` 2. 在组件中使用: ```javascript import Data from &#39;@system_resources/data.json&#39; // 指向/app/system_resources/data.json ``` ### 方案二:配置静态资源访问路径(URL直接访问) 1. 将`/app/system_resources`文件夹复制到Vue项目的`public`目录下 2. 通过绝对路径直接访问: ```html <img src="/system_resources/image.png"> <!-- 自动映射到public/system_resources目录 --> ``` ### 方案三:动态路由配置(需Vue Router支持) 在`router/index.js`中配置: ```javascript { path: &#39;/system_resources/:filePath*&#39;, component: () => import(&#39;@/views/ResourceViewer.vue&#39;), beforeEnter: (to, from, next) => { // 可添加权限验证逻辑[^4] next() } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值