V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
SimbaPeng
V2EX  ›  程序员

当你们把网站的静态资源(css、js...)部署到七牛、又拍这种云存储上时,是如何做版本控制的?

  •  
  •   SimbaPeng · 2018-06-23 20:11:48 +08:00 · 5769 次点击
    这是一个创建于 2374 天前的主题,其中的信息可能已经有所发展或是发生改变。
    18 条回复    2018-06-26 05:42:00 +08:00
    qiayue
        1
    qiayue  
       2018-06-23 20:17:03 +08:00
    目录里携带版本号
    LanFomalhaut
        2
    LanFomalhaut  
       2018-06-23 20:21:23 +08:00
    不开忽略参数.这样直接 .js?v=1.0 .js?v=1.1
    SimbaPeng
        3
    SimbaPeng  
    OP
       2018-06-23 20:24:51 +08:00
    @qiayue
    @LanFomalhaut

    你们说的这些都是手动管理吧,感觉前端自动化和云存储结合挺麻烦的
    xiaoz
        4
    xiaoz  
       2018-06-23 20:41:41 +08:00 via Android
    @SimbaPeng 是挺麻烦的,更新个静态资源还要去后台刷新。
    tomczhen
        5
    tomczhen  
       2018-06-23 20:46:41 +08:00
    文件名中带 hash 才行,参数不靠谱。
    qiayue
        6
    qiayue  
       2018-06-23 21:03:57 +08:00
    有自动化方式,比如 5 楼的,这需要前端构建工具
    gkiwi
        7
    gkiwi  
       2018-06-23 21:06:37 +08:00
    hash 啊。。人肉版本的话可就可怕了~~
    tomczhen
        8
    tomczhen  
       2018-06-23 21:16:43 +08:00
    @gkiwi 上家公司,在我提出静态文件版本以及客户端缓存问题之后,选择的就是让前端人肉版本,因为领导和前端开发一致觉得 webpack 太麻烦了 :doge:。
    gkiwi
        9
    gkiwi  
       2018-06-23 21:30:50 +08:00
    @tomczhen
    前端嫌弃 webpack 麻烦。。。

    或许你可以让他们尝试下 parcel,这个是 0 配置化的,将生成后的文件直接扔到七牛上,然后 index.html 部署到自己的服务器就行。
    pynix
        10
    pynix  
       2018-06-23 21:33:43 +08:00
    hash
    agoodob
        11
    agoodob  
       2018-06-23 22:58:35 +08:00
    围观~
    Webpack + html-webpack-plugin 应该可以解决问题,无实战经验~

    最近才刚用 Vue.js 2 + Ruby on Rails 5 开发了一个单页应用网站(网址就不贴了)
    目前部署还是用 SFTP 传到服务器上 + 配置一下 Nginx 这样跑。
    最近想试试部署到七牛试试,之前没弄过。mark 一下看看其他人怎么弄的。
    OSF2E
        12
    OSF2E  
       2018-06-24 01:41:50 +08:00
    @tomczhen 怕是这前端是兼职的吧
    mdluo
        13
    mdluo  
       2018-06-24 02:16:11 +08:00 via iPhone
    这里大部分人说的都是缓存控制而不是版本控制,前端生成的静态资源不需要做版本控制,新的文件直接替换掉老的文件就好了。

    部署到 CDN 用 CI 自动去完成。文件的 hash 命名可以参考 Webpack 文档关于 Cache 的章节。另外很多封装 Webpack 的工具默认就做好了 hash 配置,比如 create-react-app
    nosay
        14
    nosay  
       2018-06-24 08:45:17 +08:00
    自己的小站有这样的需求,但是是通过 webhook+后端语言实现的,比较繁琐,应该有更方便的方法,比如上面提到的 html-webpack-plugin,但是最为后端了解不多,有空补一下。
    yuanfnadi
        15
    yuanfnadi  
       2018-06-24 11:00:25 +08:00 via iPhone
    我是写了一个 webpack 七牛插件,webpack build 快完成的时候,把文件列表传到后端服务获取上传 token。然后前端再根据 token 上传到七牛。构建完成后就已经把全部 css 和 js 发布成功了。
    yuanfnadi
        16
    yuanfnadi  
       2018-06-24 11:01:59 +08:00 via iPhone
    文件名是 项目名称+uuid+版本 hash 理论上来说绝对不可能重复。

    部署就是把 index.html 复制到 nginx 容器里部署。
    grewer
        17
    grewer  
       2018-06-24 12:20:02 +08:00
    webpack 是麻烦,但是会了以后,各种方便好么
    sker101
        18
    sker101  
       2018-06-26 05:42:00 +08:00
    前两天看了这个帖子 想了想平时每次都要手动传七牛的确是挺麻烦 就花了一天写了个插件
    没用七牛官方的 SDK 自己实现了上传和获取的接口 要用的可以拿去试试

    环境是 webpack 4 不确定 3 能不能用

    https://github.com/yyss8/webpack-bundle-cdn-uploader
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5878 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:11 · PVG 11:11 · LAX 19:11 · JFK 22:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.