vue项目打包部署到nginx后css样式失效的问题及解决方法

 更新时间:2024年12月16日 16:55:42   作者:北海597  
我将自己的前端Vue项目,经过build生成的dist文件夹copy到nginx的html文件夹中,然后写了配置文件,运行访问后发现页面css样式没有加载到,下面给大家介绍vue项目打包部署到nginx后css样式失效的问题及解决方法,感兴趣的朋友一起看看吧

背景

我将自己的前端Vue项目,经过build生成的dist文件夹copy到nginx的html文件夹中,然后写了配置文件,运行访问后发现页面css样式没有加载到。

产生原因

一、vue项目打包时,文件引用路劲不对

打包项目之后可以在IDE打开dist文件夹下的index.html看一下,看看<Hearder>标签中引入的css和js文件路径是否正常。

如果正常,看下一个原因。

如果不正常,解决方法有两种:

1、手动修改。

直接在index.html中修改文件的引用路径(推荐),或者移动文件相对路径。最终目的都是保证index.html文件能正确引用到css、js等文件。

2、修改配置文件。

如果你的文件层级如下,那么只需要在vue.config.js中添加publicPath: './',配置,然后重新打包一下即可。

完整vue.config.js配置文件:

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer: {
    port: 3000,
    client: {
      overlay:false,
    }
  },
  publicPath: './',  // 就是这行代码
})

如果文件层级不是这样,那么自行搜索吧(狗头)。

或者调整文件层级如上图,再做进一步操作。

二、nginx配置文件问题

先说原因:nginx返回的css文件的Content-Type不正确。

浏览器地址栏输入项目uri访问项目,打开F12查看网络请求情况,查看一下返回的css文件的Content-Type,如果不是text/css,那么这就是问题所在,如图所示:

我的Content-Type:

这里具体是什么无所谓,只要不是text/css(仅针对css文件而言),都是错的

正确的Content-Type:

Contype-Type错误,浏览器无法将文件识别为css文件,自然也就失效了。

解决办法:

修改nginx配置文件

worker_processes  auto;
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;  # 重点是这里
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    keepalive_timeout  60;
    gzip on;
    server {
        listen 80;
        server_name localhost;
        root  /usr/share/nginx/html;
        location / {
            try_files $uri $uri/ /index.html;
        }
    }
    include /etc/nginx/conf.d/*.conf;
}

需要在http { … } 这个配置块里面,加上include mime.types;这一项,含义是引入同路径下的mime.types的文件。

然后我们查看mime.types这一文件内容,检查文件中是否包含:

text/css css 这一项,如果没有就加上。

这里有个注意点:主要是路径引用问题。如果是include mime.types,就要确保nginx.conf文件和mime.types两个文件在同一文件夹下没不然就引用不到。

上述操作结束后:

重启nginx

sudo systemctl restart nginx

或重新加载nginx配置文件

sudo systemctl reload nginx

或重启docker容器

sudo docker restart nginx

浏览器问题

如果上述操作过后,还是没有解决问题,建议清理以下浏览器缓存(亲测有效)。

sh
sudo systemctl reload nginx

或重启docker容器
```bash
sudo docker restart nginx

浏览器问题

如果上述操作过后,还是没有解决问题,建议清理以下浏览器缓存(亲测有效)。

到此这篇关于vue项目打包部署到nginx后css样式失效的问题及解决方法的文章就介绍到这了,更多相关nginx部署vue项目css样式失效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue项目中应用ueditor自定义上传按钮功能

    vue项目中应用ueditor自定义上传按钮功能

    这篇文章主要介绍了vue项目中应用ueditor自定义上传按钮功能,文中以vue-cli生成的项目为例给大家介绍了vue项目中使用ueditor的方法,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-04-04
  • 使用typescript构建Vue应用的实现

    使用typescript构建Vue应用的实现

    这篇文章主要介绍了使用typescript构建Vue应用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Vue和Flask通信的实现

    Vue和Flask通信的实现

    最近新做了个项目,前端使用的是目前很流行的前端框架,对于后端,本项目选择的是比较好上手、轻量级的python后台框架:Flask。感兴趣的可以了解一下
    2021-05-05
  • vue滚动条滚动到顶部或者底部的方法

    vue滚动条滚动到顶部或者底部的方法

    这篇文章主要给大家介绍了关于vue滚动条滚动到顶部或者底部的相关资料,文中通过代码示例介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • vue动态路由刷新失效以及404页面处理办法

    vue动态路由刷新失效以及404页面处理办法

    作为一个前端新手,项目中遇到权限处理时,通常会采用动态添加路由的方法来实现,下面这篇文章主要给大家介绍了关于vue动态路由刷新失效以及404页面处理办法的相关资料,需要的朋友可以参考下
    2023-11-11
  • Vue h函数的使用详解

    Vue h函数的使用详解

    本文主要介绍了Vue h函数的使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • vue组件的路由高亮问题解决方法

    vue组件的路由高亮问题解决方法

    这篇文章主要给大家介绍了关于vue组件的路由高亮问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • vue2.0 自定义组件的方法(vue组件的封装)

    vue2.0 自定义组件的方法(vue组件的封装)

    这篇文章主要介绍了vue2.0 自定义组件的方法(vue组件的封装),本文通过实例代码相结合的形式给大家介绍的非常详细,需要的朋友可以参考下
    2018-06-06
  • vue3双向绑定实现原理解读

    vue3双向绑定实现原理解读

    这篇文章主要介绍了vue3双向绑定实现原理解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue如何下载本地静态资源static文件夹

    Vue如何下载本地静态资源static文件夹

    这篇文章主要介绍了Vue如何下载本地静态资源static文件夹,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09

最新评论