SangSir丨艺术界的一朵奇葩丨至一网络科技 - uniapp
type: channel
link: https://www.sangsir.com/tag/uniapp/
items: Uniapp h5部署到服务器刷新页面出现404
items: Uniapp中plus.contacts.getAddressBook获取通讯录为返回type:0解决方案

Uniapp h5部署到服务器刷新页面出现404
type: item
date: 2023-07-19T02:43:00+08:00
description: 解决方案一将uniapp的manifest.json中h5配置的路由模式设为hash模式优点：当前端没办法接触到服务器的时候，简单修改下配置就能修复缺点：换成hash后url中带#号，不美观，而且会影响传参不能接受这个缺点可以参考解决方案二。解决方案二路由模式设置为history的同时简单配置下服务器即可Apache RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] 除了mod_rewrite，你也可以使用 FallbackResource (opens new window)。Nginxlocation / { try_files $uri $uri/ /index.html; }原生 Node.jsconst http = require('http') const fs = require('fs') const httpPort = 80 http.createServer((req, res) => { fs.readFile('index.html', 'utf-8', (err, content) => { if (err) { console.log('We cannot open "index.html" file.') } res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' }) res.end(content) }) }).listen(httpPort, () => { console.log('Server listening on: http://localhost:%s', httpPort) })基于 Node.js 的 Express对于 Node.js/Express，请考虑使用 connect-history-api-fallback 中间件。Internet Information Services (IIS)安装 IIS UrlRewrite(opens new window)在你的网站根目录中创建一个web.config文件，内容如下：<?xml version="1.0" encoding="UTF-8"?> <system.webServer> <match url="(.*)" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <action type="Rewrite" url="/" /> </system.webServer> Candyrewrite { regexp .* to {path} / }Firebase 主机{ "hosting": { "public": "dist", "rewrites": [ { "source": "**", "destination": "/index.html" } ] } }友情提示这么做以后，你的服务器就不再返回 404 错误页面，因为对于所有路径都会返回index.html文件。为了避免这种情况，你应该在 Vue 应用里面覆盖所有的路由情况，然后再给出一个 404 页面。版权声明：本文为weixin_32668125原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接和本声明。本文链接：https://blog.csdn.net/weixin_32668125/article/details/121785680

Uniapp中plus.contacts.getAddressBook获取通讯录为返回type:0解决方案
type: item
date: 2023-07-12T16:10:00+08:00
description: 在干活的时候同事发现获取不到通讯录，官网也没有写出具体的获取通讯录代码的方法，最后百度搜索到了解决方案，不墨迹直接贴代码：plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE, function( addressbook ) { // console.log(addressbook) addressbook.find(["displayName","phoneNumbers"],res=>{ console.log(res) for(var i in res){ console.log(res[i]); } }) }, function(error) { console.log(error.message); });更多操作，感谢大佬的文章：contacts 模块管理系统通讯录