在阿里云中获取这两项数据exportACCESS_KEY_ID=LTshanyueoworlJEdoPhelloexportACCESS_KEY_SECRET=bhZHelloShanzOxsHelloshanIyueM
此时,我们可以通过docker-compose的build.args功能将主机环境变量传递给Dockerfile:
version:"3"
services:
oss:
build:
context:.dockerfile
oss.Dockerfile
args:
- ACCESS_KEY_ID
- ACCESS_KEY_SECRET
- ENDPOINT=oss-cn-beijing.aliyuncs.com
ports:
- 8000:80
启动运行,成功!
constpublicUrlOrPath=getPublicUrlOrPath(process.env.NODE_ENV==='development',require(resolveApp('package.json')).homepage,process.env.PUBLIC_URL)
constconfig={output:{//webpackusespublicPath
todeterminewheretheappisbeingservedfrom.//Itrequiresatrailingslash,orthefileassetswillgetanincorrectpath.//Weinferredthe"publicpath"(suchas/or/my-project)fromhomepage.publicPath:paths.publicUrlOrPath,}
0免费的托管服务平台
经过几篇文章的持续优化,在我们使用对象存储服务后,实际上在我们的镜像中只剩下几个文件。
index.html
robots.txt
favicon.ico
等等
那么,我们能否将所有静态资源都放在公共服务中呢?
可以,实际上OSS/COS(对象存储服务)也可以这样配置,但相对复杂,如Rewrite、Redirect规则等配置。
如果你既没有个人服务器,也没有个人域名,可以将你的前端网站放在以下免费的托管服务平台上。
Vercel
GithubPages
Netlify
小结
通过本文,我们已经将静态资源部署到了CDN(几乎等同于CDN),与大多数公司的生产环境一致。
但在测试环境中,最好还是建议不要上传到OSS,因为上传到OSS需要额外的时间,而且对测试环境意义不大。
但实际上,在OSS的上传和存储阶段,还可以进一步优化,请看下一篇文章。
原文:
OSS中bucket/endpoint与静态服务部署
前端项目构建后的产物,即包含js、css以及html的dist包,构成了可访问页面的所有资源。这些资源被打包并部署到OSS服务器的一个bucket中,bucket作为存储桶提供静态网站托管服务,用户在域名服务商处将域名解析至OSS提供的endpoint地址,即可通过域名访问bucket中的静态页面。
OSS内建的静态网站托管功能,将存储桶中的静态文件转化为HTTP响应,直接提供给客户端访问,无需额外部署如Nginx等服务,有效降低维护成本和难度。
bucket在OSS系统中扮演着存储容器的角色,类似于文件夹或目录,具有唯一的标识,用于命名空间,每个bucket内可存储无限数量的文件,每份文件以其名称作为唯一标识。
endpoint,理解为节点域名,是OSS的访问入口,以HTTP(s)形式呈现,用于访问OSS存储的资源。根据区域不同,endpoint的格式也有所差异,例如:通过endpoint可直接访问bucket内的文件。
借助OSS静态网站托管服务,文件还可以通过CDN进行访问加速,提升用户访问速度,优化用户体验。