首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从路径中删除public后更正Vue

在Vue.js项目中,通常会在构建过程中将所有静态资源放在public文件夹中,并在构建后的输出目录(通常是dist)中生成最终的文件。如果你在部署时想要从URL路径中移除public这一部分,可以通过以下几种方式来实现:

基础概念

  • 公共基础路径:在Vue CLI创建的项目中,public文件夹用于存放不需要经过Webpack处理的静态资源,如图片、字体等。
  • 构建输出目录:Vue项目构建完成后,会在dist目录下生成用于部署的文件。

相关优势

  • 简洁的URL:移除public可以使URL更加简洁,便于用户记忆和分享。
  • 更好的SEO:搜索引擎更喜欢简洁的URL结构。

类型与应用场景

  • 单页应用(SPA):适用于Vue.js这样的单页应用,可以在构建时配置公共基础路径。
  • 静态网站托管:在静态网站托管服务中,可以通过配置重写规则来移除特定路径。

解决方法

方法一:修改Vue CLI配置

vue.config.js文件中,你可以设置publicPath属性来指定部署应用包时的基本URL。如果你的应用被部署在一个子路径下,你需要指定这个子路径。如果你的应用被部署在域名的根路径下,你可以将publicPath设置为'/'

代码语言:txt
复制
// vue.config.js
module.exports = {
publicPath: process.env.NODE_ENV === 'production'
? '/'
: '/'
};

方法二:使用服务器重写规则

如果你使用的是Nginx或Apache等服务器,可以通过配置重写规则来移除URL中的public部分。

Nginx配置示例:

代码语言:txt
复制
server {
listen 80;
server_name example.com;

location / {
root /path/to/your/dist;
try_files $uri $uri/ /index.html;
}

location /public/ {
rewrite ^/public/(.*)$ /$1 break;
try_files $uri $uri/ =404;
}
}

Apache配置示例:

代码语言:txt
复制
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^public/(.*)$ $1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

遇到问题及解决方法

如果你在移除public后遇到了404错误或其他问题,可能是因为服务器没有正确配置重写规则,或者publicPath设置不正确。检查服务器配置和Vue CLI的publicPath设置,确保它们匹配你的部署环境。

通过上述方法,你可以有效地从URL路径中移除public,并且确保你的Vue应用能够正确地部署和运行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 同事偷偷改了git目录让我跑不起项目

    导致文件命名不规范,现在想更正文件夹名字(common => COMMON),结果发现一个很奇特的现象!git 对文件(夹)名的大小写不敏感!!!!引发了一些问题。最终经过查阅资料得以解决,遂!...切换分支,拉取最新代码 切分支 checkout git che master 拉代码 pull git pull 这个时候就会发现项目无法启动,因为 main.js 中的文件路径引用已经由 common...src/components/COMMON/TitleCell/index.vue 请在合并前移动或删除。...03.jpg 另外一种方式 git rm 删除文件夹 rm git rm 路径> -r # -r 表示递归 删除文件 rm git rm 路径> [user1]向远端同步变更 1....那我们就: 忽略执行删除后的文件变更,直接 git checkout master 把COMMON=> common 最后执行 git check master merge 出问题 KaKa-3:test

    1.1K30

    解决 VUE: 本地运行和服务器上运行样式不一致,run、build 运行时样式有出入

    方法二: 于是,F12看到原本的样式上都有一条黑色的线,如下: 查后得知,这是样式被覆盖了。再找不带黑线的同名的样式就知道是哪个样式覆盖了原本的。...原来 是红框中覆盖了我原本的样式,找到红框中的样式设置文件并修改后,果然再运行就正常了。...另:我在网上看到有的是引入样式文件的顺序,影响加载顺序;多个相同样式文件同时存在项目中,要删除多余的; 还有其它原因参见:Vue 项目本地运行 run 与服务器上 build 样式不一致,build 后样式不生效...2019.5.30 后记 今天又遇到打包后样式有变的情况。...找到问题样式后,对比正确情况样式,研究 2 者有什么不一样。 找到区别后去更正错误样式为正确样式。 今天的情况是:App.vue 文件中有一个样式设置覆盖了我需要的样式。

    2.9K30

    vue系列教程之微商城项目|项目初始化

    App.vue 将所有内容分为一个个模块,一定有个最大的模块 负责整合所有模块,便是App.vue 11. main.js 项目入口,全局插件引入(部分插件需要注册)的地方, 将App.vue挂载到public...README.md 项目说明文件(自己写) 2.初始化 ps:删除不必要文件 1) 清空components 和 views 文件 2)删除router/index.js和 App.vue 中无用的代码...router/index.js (左边删除后、右边删除前) ?...App.vue ? 页面效果 ? 4.配置路径别名 为什么需要配置路径别名 由于项目目录结构较复杂,当在一个文件中引入另一文件时,引用路径过长,不利于开发 举例: ?...当需要在navBar.vue中引入logo.png,则此时的引用路径为 '../../assets/logo.png'.

    70820

    前后端分离项目,如何优雅实现文件存储!

    上传完成后,我们打开MinIO的管理界面可以看到上传后的图片,也可以通过返回的url来访问图片: ?...我们可以调用删除接口来删除该图片,需要注意的是objectName值是存储桶中的图片相对路径,删除文件接口地址:http://localhost:8080/minio/delete ?...结合Vue使用 经过上面操作,我们的SpringBoot应用已经可以完成文件上传与删除操作了,接下来我们结合Vue来实现前端上传图片到MinIO中,以mall-admin-web中的代码为例。...和multiUpload.vue中,下面我们以singleUpload.vue的修改为例。...最后在el-upload文件上传成功的钩子函数中添加如下代码,对于使用MinIO上传的操作直接从返回结果中获取文件url; ?

    3.1K20

    vue 3.0新特性

    vue-cli 从 2.0 到 3.0 修改了众多的东西,下面就让我们来了解下。 创建项目 从vue-cli 3.0开始,vue的安装命令从vue-cli 改成了 @vue/cli。...当我们使用vue ui命令后即可使用图形化的方式来操作vue项目的源码。...同时,Vue在3.0版本删除了static目录,并新增了public目录,该目录主要用于存放不被webpack处理的文件和资源。 当我们使用create命令创建项目时,系统会要求我们选择一些东西。...node_modules:项目依赖的第三方模块; public:移除static目录,新增public目录,并且 index.html 移动到 public 中,该目录主要用于存放如图片、字体等静态资源和打包后的文件...在 JavaScript 或者 SCSS 中通过 相对路径 引用的资源会经过 webpack 处理,放置在 public 文件夹的资源可以通过绝对路径引用,这些资源将会被复制,而不经过 webpack

    94330

    【nodejs原理&源码赏析(9)】用node-ssh实现轻量级自动化部署

    本篇中从得到一个生产环境的包以后开始,对站点部署的相关知识进行一些介绍。...(自动生成的是80端口),例如3001 将前端工程build出的包整体复制粘贴到/public目录中 此时在本地工程根目录下输入npm start后,在浏览器中http://localhost:3001...');//将srcPach路径对应的内容添加到zip包中/public路径 archive.finalize(); } //将dist目录上传至正式环境 function uploadFile...示例如下(由于是自用系统,不考虑灰度发布等,直接暴力删除静态目录public,然后替换为新的包): #!.../bin/bash cd /usr1/AAA/mydemo #删除原静态资源目录 rm -rf public cd /usr1/AAA #解压新的包 unzip public.zip #将解压出的public

    1.8K20

    vue-cli@2.x项目迁移日志

    直接将 static 文件夹更名为 public ,并且将根目录中的 index.html 文件也拖进 public文件夹中。...这里需要注意的是,原来我们放在 static 中的静态资源,在代码中引用的时候,路径可能会写为 /static/img/xxx.jpg, 移动到 public 文件夹中之后,需要删除 static 前缀...直接将 static 文件夹中的资源全都拖进,新建 public 文件夹 接下来改动比较多的就是 package.json中的依赖包了 // 修改执行脚本 "start": "npm run serve..., // 需要手动更新一下 vue 和 vue-template-compiler 的版本,如果版本没有对象 npm start 就不成功,但是也不是严格的版本号一致,具体没研究过对应关系,直接从 vue-cli...功能被内置到 @vue/cli-service 中去了,所以原来 devDependencies 中根打包相关的依赖包都可以删除了。

    55500

    Docker 使用小结

    由于启动容器的同时应该将主机上的项目文件挂载进容器里,所以在启动容器的同时使用 -v 命令来将本机上的 vue 项目挂载进容器中(数据卷)。...vue.config.js root@f005399b6c73:/usr/front-end-of-online-classroom# 可以看到,容器中已经成功挂载了主机上的 vue 项目...(之所以不包含 vue 启动环境是因为配置 vue 启动环境的时候是在 front-end-of-online-classroom 路径下配置的,是配置在了主机的真实文件上,并不在容器中)。...container run 命令的 --rm 参数,在容器终止运行后自动删除容器文件。...logout # 搜索 Docker Hub 中的镜像 $ docker search 镜像名:版本号 # 从 Docker Hub 拉取镜像到本地 $ docker pull 镜像名:版本号

    56330

    Spring Boot 2.x(十六):玩转vue文件上传

    为什么使用Vue-Simple-Uploader 最近用到了Vue + Spring Boot来完成文件上传的操作,踩了一些坑,对比了一些Vue的组件,发现了一个很好用的组件——Vue-Simple-Uploader...支持进度、预估剩余时间、出错自动重试、重传等操作 支持“快传”,通过文件判断服务端是否已存在从而实现“快传” 由于需求中需要用到断点续传,所以选用了这个组件,下面我会从最基础的上传开始说起: 单文件上传...demo中粘贴过来这段代码,然后在uploadOption1中配置上传的路径即可,其中uploader-btn 中设置directory属性即可选择文件夹进行上传。...void mergeFile(String fileName, String chunkFolder) { try { // 如果合并后的路径不存在,则新建...Paths.get(target), Files.readAllBytes(path), StandardOpenOption.APPEND); //合并后删除该块

    1.5K20

    乐优项目:商品(新增,修改,删除,上架,下架),搭建前台系统live-server-(五)

    以下步骤不需操作,仅供参考第一步:安装,使用npm命令:npm install vue-quill-editor --save第二步:加载,在js中引入:全局引入:import Vue from 'vue'import...2.6.1.GoodsController请求方式:PUT请求路径:/请求参数:Spu对象返回结果:无@PutMapping("goods")public ResponseEntity updateGoods...因此这里直接删除以前的SKU,然后新增即可。...(即.*\.jade)(不推荐使用赞成--ignore)--middleware=PATH - 导出要添加的中间件功能的.js文件的路径; 可以是没有路径的名称,也可以是引用middleware文件夹中捆绑的中间件的扩展名...(key):获取url路径中的参数http:axios对象的别名。

    14810

    数据库的定期备份

    这两天完成了数据库的定期备份业务实现,以及一些无需提及的前端页面bug更正。...因为以后可能会有不少的定期任务,如果仍然放在service目录层级下,会显得比较乱,所以决定放在了新的包schedule中。...否则需要配置填写详细的mysqldump地址执行】,然后将结果从输入流读取并且写入本地的文件中。...目前导出的文件大小约莫200k,不算很大,所以就不实现自动删除久远日志的功能了,直接我全都要!...当然光就是这些的话会有非常严重的问题,因为该保存的基准路径被设置成了静态资源路径(本地图片备份后备路径需要),所以如果不对mysql_bak/进行拦截,那么这些备份文件将会被别人轻易的拿到,虽然现在没有什么特别重要的数据在库中

    22710
    领券