Stout多项目部署指南如何将多个项目部署到同一个S3域名【免费下载链接】StoutA reliable static website deploy tool项目地址: https://gitcode.com/gh_mirrors/st/Stout想要在同一域名下部署多个静态网站项目吗Stout静态网站部署工具为您提供了完美的解决方案 作为一款可靠的静态网站部署工具Stout支持将多个项目无缝部署到同一个S3存储桶让您的博客、文档、应用等共享同一域名同时保持各自的独立性。为什么选择Stout进行多项目部署Stout是一款专为静态网站设计的专业部署工具它解决了传统S3部署中的缓存一致性问题。当您需要管理多个相关项目时Stout的多项目部署功能让您能够统一管理所有项目共享同一个S3存储桶和CloudFront分发独立部署每个项目可以单独更新和回滚互不影响成本优化减少AWS资源开销避免为每个项目单独创建存储桶简化运维统一的域名管理减少DNS配置复杂度Stout多项目部署的核心配置1. 理解dest参数的关键作用Stout通过dest参数实现多项目部署。这个参数指定了项目文件在S3存储桶中的目标目录位置。例如# 主站项目部署到根目录 stout deploy --bucket mydomain.com --dest ./ # 博客项目部署到/blog子目录 stout deploy --bucket mydomain.com --dest ./blog # 文档项目部署到/docs子目录 stout deploy --bucket mydomain.com --dest ./docs2. 创建多项目部署的YAML配置文件在您的每个项目中创建deploy.yaml文件为不同环境配置独立的部署目标# 主站项目的deploy.yaml default: root: dist/ production: key: ${AWS_KEY} secret: ${AWS_SECRET} bucket: mydomain.com dest: ./ # 博客项目的deploy.yaml default: root: build/ production: key: ${AWS_KEY} secret: ${AWS_SECRET} bucket: mydomain.com dest: ./blog3步完成Stout多项目部署配置第一步安装和初始化Stout从Stout的发布页面下载适合您系统的二进制文件并将其添加到系统路径中# 下载并安装Stout wget https://link.gitcode.com/i/6a0a96c81045b24ff084ed81b3236645/releases/latest/download/stout-linux-amd64 chmod x stout-linux-amd64 sudo mv stout-linux-amd64 /usr/local/bin/stout # 创建S3存储桶和CloudFront分发 stout create --bucket mydomain.com --key YOUR_AWS_KEY --secret YOUR_AWS_SECRET第二步配置各项目的部署参数为每个项目创建独立的部署配置。假设您有三个项目主站、博客和文档中心主站项目配置部署到根目录stout deploy --bucket mydomain.com \ --key YOUR_AWS_KEY \ --secret YOUR_AWS_SECRET \ --root ./dist \ --dest ./博客项目配置部署到/blog目录stout deploy --bucket mydomain.com \ --key YOUR_AWS_KEY \ --secret YOUR_AWS_SECRET \ --root ./build \ --dest ./blog文档项目配置部署到/docs目录stout deploy --bucket mydomain.com \ --key YOUR_AWS_KEY \ --secret YOUR_AWS_SECRET \ --root ./public \ --dest ./docs第三步自动化部署流程将Stout集成到您的CI/CD流程中实现自动化部署# .github/workflows/deploy.yml name: Deploy Multiple Projects jobs: deploy-main: runs-on: ubuntu-latest steps: - uses: actions/checkoutv2 - name: Deploy Main Site run: | stout deploy --bucket mydomain.com \ --key ${{ secrets.AWS_KEY }} \ --secret ${{ secrets.AWS_SECRET }} \ --root ./dist \ --dest ./ deploy-blog: runs-on: ubuntu-latest steps: - uses: actions/checkoutv2 - name: Deploy Blog run: | stout deploy --bucket mydomain.com \ --key ${{ secrets.AWS_KEY }} \ --secret ${{ secrets.AWS_SECRET }} \ --root ./blog/build \ --dest ./blog deploy-docs: runs-on: ubuntu-latest steps: - uses: actions/checkoutv2 - name: Deploy Documentation run: | stout deploy --bucket mydomain.com \ --key ${{ secrets.AWS_KEY }} \ --secret ${{ secrets.AWS_SECRET }} \ --root ./docs/public \ --dest ./docs高级多项目部署技巧1. 独立回滚功能Stout为每个部署生成唯一的部署ID支持项目级别的独立回滚# 查看部署历史 # 部署时会显示类似 Deploy ID: a3b8ff290c33 # 回滚博客项目到特定版本 stout rollback --bucket mydomain.com \ --key YOUR_AWS_KEY \ --secret YOUR_AWS_SECRET \ --dest ./blog \ a3b8ff290c332. 文件版本控制Stout自动为JavaScript和CSS文件添加内容哈希确保浏览器缓存的一致性!-- 部署前 -- link relstylesheet href/blog/styles/main.css !-- 部署后 -- link relstylesheet href/blog/styles/main-a1b2c3d4e5.css3. 跨项目资源共享如果您有需要在多个项目间共享的资源如图片、字体可以将它们部署到公共目录# 共享资源部署到/assets目录 stout deploy --bucket mydomain.com \ --key YOUR_AWS_KEY \ --secret YOUR_AWS_SECRET \ --root ./shared-assets \ --dest ./assets最佳实践建议1. 目录结构规划建议的统一目录结构mydomain.com/ # 主站 mydomain.com/blog/ # 博客 mydomain.com/docs/ # 文档 mydomain.com/assets/ # 共享资源2. 缓存策略优化Stout自动为不同文件类型设置合理的缓存策略版本化文件JS/CSS1年缓存非版本化文件图片/字体60秒缓存3. 环境变量管理使用环境变量保护AWS凭证安全export AWS_KEYyour-access-key export AWS_SECRETyour-secret-key stout deploy --bucket mydomain.com \ --key $AWS_KEY \ --secret $AWS_SECRET \ --dest ./blog常见问题解答Q: 多个项目同时部署会冲突吗A: 不会Stout使用原子操作确保部署一致性即使多个项目同时部署也不会产生冲突。Q: 如何为每个项目设置不同的缓存策略A: Stout自动处理缓存策略但您可以通过CloudFront控制台为不同路径模式设置自定义缓存规则。Q: 支持自定义域名吗A: 当然您可以在CloudFront中为整个域名配置SSL证书所有子路径都会自动继承。Q: 部署失败时会发生什么A: Stout的部署是原子性的要么全部成功要么完全失败不会留下部分更新的文件。总结Stout多项目部署功能让静态网站管理变得前所未有的简单高效。通过灵活的dest参数配置您可以轻松地将多个项目组织在同一个域名下享受统一管理带来的便利同时保持每个项目的独立性和可维护性。无论是个人博客、企业官网还是产品文档Stout都能为您提供稳定可靠的部署体验。开始使用Stout让您的静态网站部署工作变得更加专业和高效【免费下载链接】StoutA reliable static website deploy tool项目地址: https://gitcode.com/gh_mirrors/st/Stout创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考