Taro——H5项目如何修改静态文件入口

简介: 这里我们说两种情况,一种是在静态资源引入的时候加入前缀,另一种是真正的将静态资源输出到指定的目录下。

前言

这里我们来说下如何修改Taro静态文件的入口,一般情况下是不需要修改的,但是如果你是在当前项目下部署的二级站点,那你就需要调整了。

内容

这里我们说两种情况,一种是在静态资源引入的时候加入前缀,另一种是真正的将静态资源输出到指定的目录下。

静态资源前缀

这里的静态文件入口指的是仅index.html中静态引入资源文件中,加入相应的前缀,其他的不做任何变动,上配置:

{
   
  h5: {
   
    //....省略的配置
    router: {
   
      mode: 'browser',
      basename: '/mobile',
    },
    publicPath: '/mobile',
    //....省略的配置
  }
}
AI 代码解读

是不是很简单,只需要调整下publicPath,但是如果你不清楚Taro的配置文件,那估计你要搞到头疼咯。

那么 nginx 我们应该如何代理呢?接下来,让我们继续看配置:

# 这里的mobile其实就是我们前面在`Taro`配置的`basename`
location ^~ /mobile/ {
   
    alias /var/www/html/hhk-mobile/web/;
    index index.html;
    try_files $uri $uri/ /mobile/index.html;
    access_log /alidata/www/wwwlogs/mobile.log;
}
AI 代码解读

站点目录: /var/www/html/hhk-mobile/

制品目录: web/ (在站点下打包后,使用 mv dist web 命令即可)

重新载入 nginx 的配置文件后,访问 https://<域名>/mobile 即可。

指定静态资源目录

指定静态资源的输出目录,配置也很简单,只需要我们在h5下进行以下配置,那么打包后,你的制品就会输出到自定义的mobile下,当前你的index.html引入的资源也会是/mobile/js/xxx.js

{
   
  h5: {
   
      output: {
   
              filename: 'mobile/js/[name].[contenthash:8].js',
              chunkFilename: 'mobile/js/[name].[contenthash:8].js',
            },
        miniCssExtractPluginOption: {
   
              filename: 'mobile/css/[name].[contenthash:8].css',
              chunkFilename: 'mobile/css/.[contenthash:8].css',
        },
  }
}
AI 代码解读

或许这时候你会说,那么我直接指定输出目录不就好了嘛,但其实这个不符合我们的诉求,因为这里的制品会多嵌套一层 mobile 的目录,那么我们访问静态资源的地址就是 https://<域名>/mobile/mobile/js/xxxjs,只有这样我们才能拿到静态资源,但是我们实际的访问地址是https://<域名>/mobile/js/xxxjs,这就会导致我们访问静态资源出现404。

总结

以上就是所有的内容了,这里有个小建议,大家遇到问题的时候,大家可以多看下官方的文档、github issue,如果真的找不到的时候,可以先放空下再来思考。

目录
打赏
0
2
2
0
67
分享
相关文章
基于Leaflet.draw的自定义绘制实战
本文介绍了如何基于leaflet.draw进行自定义绘制,同时获取对象的bbox和geojson信息。
975 0
基于Leaflet.draw的自定义绘制实战
通义灵码企业代码补全增强使用实践
通义灵码提供了企业代码补全增强的能⼒,在开发者使⽤通义灵码 IDE 插件的⾏间代码补全时,可以结合企业上传的代码库作为上下⽂进⾏⾏间代码补全,使代码补全更加贴合企业代码规范、业务特点。本⽂将分享如何构建⾼质量的企业代码库,以及开发者在前端和后端开发场景的使⽤实践。
|
11月前
ElementUI——elementui重复引入样式
ElementUI——elementui重复引入样式
83 1
|
11月前
|
Vue————Vue v2.7.14 入口文件【二】
Vue————Vue v2.7.14 入口文件【二】
118 0
git clone之报错git@gitee.com:Permission denied (publickey).fatal: Could not read from remote repository
git clone之报错git@gitee.com:Permission denied (publickey).fatal: Could not read from remote repository
1030 0
4. 解决uni-app开发过程中view、image等标签出现诸如“出现错误:类型“{ class: string; }”的参数不能赋给类型“.......”
4. 解决uni-app开发过程中view、image等标签出现诸如“出现错误:类型“{ class: string; }”的参数不能赋给类型“.......”
878 0
为什么MySQL分页查询偏移量越大查询越慢
【5月更文挑战第1天】为什么MySQL分页查询偏移量越大查询越慢
483 4
antd如何隐藏Upload组件的删除和预览图标
antd如何隐藏Upload组件的删除和预览图标
584 1
dart-sass与node-sass的区别以及使用dart-sass可能会出现的问题
dart-sass与node-sass的区别以及使用dart-sass可能会出现的问题
1693 0
dart-sass与node-sass的区别以及使用dart-sass可能会出现的问题
一杆到底:DSL 领域特定语言
一、DSL了解1、DSL介绍DSL(Domain Specific Language)是针对某一领域,具有受限表达性的一种计算机程序设计语言。 常用于聚焦指定的领域或问题,这就要求 DSL 具备强大的表现力,同时在使用起来要简单。说到DSL,大家也会自然的想到通用语言(如Java、C等)。为什么没有一种语言同时 兼具『简洁』和『业务表达』能力呢?从信息论本质上来讨论这个问题,每个语言的程序都可以抽
16046 0
一杆到底:DSL 领域特定语言
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问