質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

PWA(Progressive Web Apps)

PWA(Progressive Web Apps)は、アプリのようなWebサイトを指します。仕様が異なる様々なデバイスで表示でき、インストールも不要。さらに訪問し続けることでユーザーについて学び、強力なPWAとなります。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

1回答

2511閲覧

VueとPWAで作ったサイトのキャッシュを新しいファイルがあった場合に自動更新したい

haritoshi

総合スコア79

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

PWA(Progressive Web Apps)

PWA(Progressive Web Apps)は、アプリのようなWebサイトを指します。仕様が異なる様々なデバイスで表示でき、インストールも不要。さらに訪問し続けることでユーザーについて学び、強力なPWAとなります。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

0クリップ

投稿2019/05/25 06:28

編集2019/05/25 07:33

前提・実現したいこと

現在、Vueにて作成したサイトをapacheで配信しています。Vue CLI3の初期設定にてPWAを有効にし、「production」としてbuildした後のフォルダをapacheで配信するという設計です。
今回、サイトをアップデートすることになり、viewを書き換えて再びbuildを行いました。しかし、一度サイトにアクセスしているユーザーのブラウザには前回のjsやcssが残っているため、ブラウザにてキャッシュを削除しないと新しいviewに変更されません。

  • 現在キャッシュされているjs等のファイルが更新されていた時に、再キャッシュ
  • package.jsonのversionを参照して上がっていた場合再キャッシュ

等の設定がVueCLI3にて作成したWebアプリケーションでできないか探しています。

PWAの設定

Vue CLI3にてPWAを有効にした時に作成されるregisterServiceWorker.jsは編集していません。

javascript

1/* eslint-disable no-console */ 2 3import { register } from 'register-service-worker'; 4 5if (process.env.NODE_ENV === 'production') { 6 register(`${process.env.BASE_URL}service-worker.js`, { 7 ready() { 8 console.log( 9 'App is being served from cache by a service worker.\n' 10 + 'For more details, visit https://goo.gl/AFskqB', 11 ); 12 }, 13 registered() { 14 console.log('Service worker has been registered.'); 15 }, 16 cached() { 17 console.log('Content has been cached for offline use.'); 18 }, 19 updatefound() { 20 console.log('New content is downloading.'); 21 }, 22 updated() { 23 console.log('New content is available; please refresh.'); 24 }, 25 offline() { 26 console.log('No internet connection found. App is running in offline mode.'); 27 }, 28 error(error) { 29 console.error('Error during service worker registration:', error); 30 }, 31 }); 32} 33

環境毎に検証

現在、PCのchrome、safari、iPhoneのChrome、Safari、Google検索にて確認を行いましたが、
iPhoneのSafariだけ、更新がされないようです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

iOS Safariのバグが原因ぽいですね。

vue.config.jsにて下記のオプションを設定すると直るみたいですが、アクセスするたびに最新のサービスワーカーをダウンロードする仕様になってしまうので、あくまで暫定的な対処になります。

js

1module.exports = { 2 pwa: { 3 workboxOptions: { 4 skipWaiting: true 5 } 6 } 7}

投稿2019/05/25 11:22

yhg

総合スコア2161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

haritoshi

2019/05/25 12:57

なるほど! ありがとうございます このissueを追ってみることにします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問