nginx次级域名部署dva静态项目!

news/2025/2/26 13:24:18

这几天为了部署前端项目的事情,头都搞大了。又没有运维的支持,全靠我这个前端开发弄,真是踩了部署的各种坑了。

这里说一下 nginx 次级域名部署基于 dvajs 开发 react 框架的静态项目的注意要点。

基于 dvajs 框架的开发环境搭建,这里我就不细说了。

编译打包

首先我们来看看项目编译后 index.html 中脚本的引入

<link href="/index.css" rel="stylesheet"></head>
<body>
    <div id="root"></div>
    <script type="text/javascript" src="/index.js"></script>
</body>
复制代码

不难发现引入的脚本路径是绝对的,这就有点可怕了呀!直接可能导致线上部署出问题呀!

nginx 配置

server {
    listen 80;
    server_name www.abc.com;
    root /项目/root地址/不带sub;

    location ^~ /merchantStatic/ {
        root   /home/projectName/src;
        index  index.html;
    }
}
复制代码

这里服务器的配置直接导致我们访问时的地址是 www.abc.com/merchantStatic/index.html

问题描述

根据上面项目代码编译打包后生成的 index.html 文件代码和 nginx 服务器的配置,现在不难发现问题所在 - index.html 里面引入的脚本不能正常引入了。因为对应的脚本引入地址变成了 www.abc.com/index.css 和 www.abc.com/index.js,而正确的地址应该为 www.abc.com/merchantStatic/index.css 和 www.abc.com/merchantStatic/index.js,是不是?是不是?

解决问题

既然问题已经出现,而且我们已经知道问题所在,解决问题的方案那就好说了。修改 .webpackrc 里面的 publicPath 配置属性为 /merchantStatic/ 前缀目录。

修改完后重新 build 发现 index.html 里面

<link href="/merchantStatic/index.css" rel="stylesheet"></head>
<body>
    <div id="root"></div>
    <script type="text/javascript" src="/merchantStatic/index.js"></script>
</body>
复制代码

是我们期望的 url 。重新部署代码访问 www.abc.com/merchantStatic/index.html 没毛病了,页面很丝滑!!


http://www.niftyadmin.cn/n/2639137.html

相关文章

软件质量没有银弹:阿里巴巴的25个技术实践与坑

摘要&#xff1a; 在欧洲中世纪的传说中&#xff0c;有一种叫“人狼”的妖怪&#xff0c;就是人面狼身。它们会讲人话&#xff0c;专在月圆之夜去袭击人类。而且传说中对“人狼”用一般的枪弹是不起作用的&#xff0c;普通子弹都伤不到也打不死它&#xff0c;只有一种用银子作成…

asp.net core 框架搭建2-搭建MVC后台管理系统

文章目录 系列文章1.项目搭建1.1 新建Asp.net core MVC项目1.2 ASP.NET Core MVC目录结构1.3 创建一个控制器&#xff0c;与页面数据交互1.4 实现一个登录页面1.5 实现后台管理主界面 2.过程中知识点和涉及到的问题2.1 session的使用2.2 EF Core连接mysql 源码下载 作者&#x…

6月26日云栖精选夜读:成为一名Java高级工程师你需要学什么

摘要&#xff1a; 1.技术广度方面 至少要精通多门开源技术吧&#xff0c;研究过框架等的源码。 2.项目经验方面 从头到尾跟过几个大项目&#xff0c;头是指需求阶段&#xff0c;包括需求调研。 尾是指上线交付之后&#xff0c;包括维护阶段。 1.技术广度方面 至少要精通多门开源…

Python基础-字符串实例

2019独角兽企业重金招聘Python工程师标准>>> 字符串判断 详细列表参考博文《Python基础-运算》 判断字符“小”是否在字符串“小明”中 name "字符串"if "字符" in name:print("字符在字符串中&#xff01;") else:print("字符…

大象中原

中国文化&#xff0c;100年看上海&#xff0c;1000年看北京&#xff0c;3000年看河南。河南是中华民族的发祥地&#xff0c;其历史悠久&#xff0c;文化厚重&#xff0c;正如河南博物馆的名字&#xff1a;大象中原。当然&#xff0c;大象也很容易联想到“大象”。一、文明曙光​…

6月27日云栖精选夜读:细数智能家居的痛点

摘要&#xff1a; 智能家居的安全是非常重要的一点&#xff0c;尽管如 Windows 操作系统各个 发行版也会发生一些安全事故。但是智能家居的安全问题将会是最直接最可怕的。因为智能家居是直接面向用户最隐私的一面的&#xff0c;任何可能发生的安全问题一旦泄露了最隐私的内容&…

Java关键字—final

final—不可变的&#xff0c;用来说明最终属性&#xff0c;表明一个类不能派生出子类&#xff0c;或者成员方法不能被覆盖&#xff0c;或者成员域的值不能被改变。 修饰范围&#xff1a; 1.修饰类&#xff0c;被final关键字修饰的类无法被继承&#xff1b; 2.修饰方法&#xff…

Python 程序员都会喜欢的 6 个库

摘要&#xff1a; 在编程时&#xff0c;小挫折可能与大难题一样令人痛苦。没人希望在费劲心思之后&#xff0c;只是做到弹出消息窗口或是快速写入数据库。因此&#xff0c;程序员都会喜欢那些能够快速处理这些问题&#xff0c;同时长远来看也很健壮的解决方案。 下面这6个Pytho…