详情页标题前

腾讯云对象存储使用 COS 静态网站功能搭建前端单页应用

详情页1

什么是单页应用?

单页应用(single-page application,SPA)是一种网络应用程序或网站的模型,它通过动态重写当前页面与用户进行交互,而非传统的从服务器重新加载整个新页面。这种方法避免了页面之间切换打断用户体验,使应用程序更像一个桌面应用程序。在单页应用中,所有必要的代码(HTML、JavaScript 和 CSS)都通过单个页面的加载而检索,或者根据需要(通常是为响应用户操作)动态装载适当的资源并添加到页面。目前在前端开发领域,常见的单页应用开发框架有 React、Vue、Angular 等。本文将使用目前较为热门的2个框架,一步步教您使用腾讯云对象存储(Cloud Object Storage,COS)提供的静态网站功能快速搭建一个线上可用的单页应用,并提供一些常见问题的解决方案。

准备工作

1. 安装 Node.js 环境。2. 注册腾讯云账户,并完成实名认证,确保能正常登录 腾讯云 COS 控制台3. 创建一个存储桶(为了方便测试可将权限设置为公有读私有写)。

编写前端代码

注意 如果已经自行实现了代码,可直接跳至 开启存储桶静态网站配置 步骤查看。

使用 Vue 快速搭建一个单页应用

1. 执行如下命令,安装 vue-cli:

npm install -g @vue/cli

2. 执行如下命令,使用 vue-cli 快速生成一个 vue 项目,可参见 官方文档

vue create vue-spa

3. 执行如下命令,在项目根目录下安装 vue-router:

npm install vue-router -S  (Vue2.x)

或者

npm install vue-router@4 -S  (Vue3.x)

4. 修改项目里的 main.js 和 App.vue 文件。
main.js 如下图:


腾讯云对象存储使用 COS 静态网站功能搭建前端单页应用


App.vue 主要修改组件的 template,如下图:

腾讯云对象存储使用 COS 静态网站功能搭建前端单页应用


说明 由于篇幅有限,这里仅节选部分关键代码,完整代码可 单击此处 下载。5. 修改代码后,执行如下命令,进行本地预览。

npm run serve

6. 调试并预览检查无误后,执行如下命令,打包生产环境代码。

npm run build

此时,将会在项目根目录下生成 dist 目录。至此,Vue 的程序代码已经准备完毕。

使用 React 快速搭建一个单页应用

1. 执行如下命令,安装 create-react-app:

npm install -g create-react-app

2. 使用 create-react-app 快速生成一个 react 项目,可参考 官方文档3. 执行如下命令,在项目根目录下安装 react-router-dom:

npm install react-router-dom -S

4. 修改项目里的 App.js 文件。

腾讯云对象存储使用 COS 静态网站功能搭建前端单页应用


说明 由于篇幅有限,这里仅节选部分关键代码,完整代码可 单击此处 下载。5. 修改代码后,执行如下命令,进行本地预览。

npm run start

6. 调试并预览检查无误后,执行如下命令,打包生产环境代码。

npm run build

此时将会在项目根目录下生成 build 目录。至此,React 的程序代码已经准备完毕。

开启存储桶静态网站配置

1. 进入已创建存储桶的详情页面,并在左侧导航栏中,单击基础配置 > 静态网站2. 在静态网站管理页面,参考下图,进行配置。操作详情请参见 设置静态网站

腾讯云对象存储使用 COS 静态网站功能搭建前端单页应用



部署至 COS

1. 找到之前已经配置了静态网站的存储桶,进入文件列表页面。2. 将编译目录(Vue 默认为 dist 目录,react 默认为 build 目录)下的所有文件上传至存储桶的根目录下。操作详情请参见 上传对象

腾讯云对象存储使用 COS 静态网站功能搭建前端单页应用

3. 访问存储桶的静态网站域名(如下图中的访问节点)。

腾讯云对象存储使用 COS 静态网站功能搭建前端单页应用


即可看到已经部署完成的应用主页,这里以 Vue 应用举例。

腾讯云对象存储使用 COS 静态网站功能搭建前端单页应用

4. 尝试切换路由(Home、Foo、Bar),并刷新页面,验证是否符合预期(即在路由下刷新不会出现404报错)。

常见问题

我不想使用静态网站的默认域名怎么办?可以使用我自己的域名吗?

除了上面使用的默认静态网站域名,COS 还支持设置自定义 CDN 加速域名、自定义源站域名。具体可参考 域名管理概述 文档进行配置,配置成功后即可使用自己想要的域名来访问应用。请注意,如果您选择配置 CDN 加速域名,请关注 CDN 节点缓存过期配置,以便获取更新后的数据。

部署好应用之后,切换路由能成功渲染,但页面一刷新就出现404报错,是什么原因?

原因可能是配置静态网站的时候,缺失配置或错误配置了错误文档导致,请再次回顾本文开头提供的标准配置截图,可以看到错误文档和索引文档均配置为 index.html由于单页应用的特性,我们需要保证在任何情况下都要成功访问到应用入口(一般为 index.html),这样才能触发后续路由的一系列内部逻辑。

切换路由之后,页面能正常显示,但 HTTP 状态码依然为404,怎样才能正常返回200?

这里原因是配置静态网站的时候,缺少了配置错误文档响应码导致,可参考开头的配置截图,将其配置为200即可解决。

配置了错误文档之后,访问错误的路径还需要展示404的功能,应该如何处理?

这里推荐在前端代码里实现404逻辑,在路由配置最底部设置一个底层的匹配规则,当前面所有规则都匹配失败的时候则渲染一个404组件,组件内容可根据自行需求来设计实现。具体可参考本文提供的代码 demo 里的路由配置的最后一个配置。

访问页面出现 403 Access Denied 报错是什么原因?

原因可能是存储桶的权限设置了私有读写,可以修改为公有读私有写解决。另外,如果使用 CDN 加速域名访问私有读写的存储桶,还需注意开启回源鉴权配置,这样才能授权 CDN 服务正常访问到 COS 下的资源。
对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/144364.html

(0)
上一篇 2023年12月9日 上午1:45
下一篇 2023年12月9日 上午1:45
详情页2

相关推荐

  • 腾讯云GPU云服务器使用 GPU 监控

    监控与告警是保证 GPU 云服务器高可靠性、高可用性和高性能的重要部分。创建 GPU 云服务器时,默认免费开通云监控。您可通过 云服务器控制台 查看监控指标,详细说明请参见 云服务器监控内容。NVIDIA GPU 系列实例另外提供了监控 GPU 使用率,显存使用量,功耗以及温度等参数的能力。您也可以在 腾讯云可观测平台 分析监控指标和实施告警,更多详细内容可…

    2023年12月9日
  • 腾讯云TDSQL-C MySQL版开启或关闭并行查询

    TDSQL-C MySQL 版支持并行查询能力,您可通过控制台或命令行调整相关参数,为实例开启或关闭并行查询功能。 前提条件 数据库版本:TDSQL-C MySQL 版 8.0 内核版本 3.1.8 及以上。 参数说明 说明读写实例与只读实例均支持开启并行查询功能,但实例 CPU 核数需大于等于4。您可通过控制台或命令行调整参数 txsql_max_para…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云计算加速套件TACO Kit产品动态

    2022年05月 动态名称 动态描述 相关文档 计算加速套件TACO Kit 上线 计算加速套件 TACO Kit(TencentCloud Accelerated Computing Optimization Kit)是一种异构计算加速软件服务,具备领先的 GPU 共享技术和业界唯一的 GPU 在离线混部能力,搭配腾讯自研的软硬件协同优化组件和硬件厂商特有…

    腾讯云 2023年12月9日
  • 腾讯云对象存储图片标签

    简介 本文档提供关于图片标签相关的 API 概览以及 SDK 示例代码。 API 说明 图片标签 图片标签功能通过借助持久化处理接口,实现对对象存储(Cloud Object Storage,COS)存量数据的图片标签识别。 图片标签 功能说明 图片标签功能通过借助对象存储的持久化处理接口,实现对 COS 存量数据的图片标签识别,返回图片中置信度较高的主题标…

    腾讯云 2023年12月9日
  • 阿里云日志服务SLS通过JDBC协议分析日志-云淘科技

    日志服务支持您在数据库(例如MySQL)中使用JDBC协议连接日志服务,并通过标准的SQL92语法查询和分析日志。 前提条件 已创建阿里云账号或RAM用户的AccessKey。具体操作,请参见访问密钥。 如果使用RAM用户的AccessKey,则RAM用户必须是当前Project所属阿里云账号的RAM用户,且具备Project级别的读权限。如何授权,请参见配…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。