+ An unhandled error has occurred.
+
Reload
+
🗙
+
+
+
+
+
+
+
diff --git a/Mordos.Web/wwwroot/manifest.webmanifest b/Mordos.Web/wwwroot/manifest.webmanifest
new file mode 100644
index 0000000..ee62bbb
--- /dev/null
+++ b/Mordos.Web/wwwroot/manifest.webmanifest
@@ -0,0 +1,22 @@
+{
+ "name": "Mordos.Web",
+ "short_name": "Mordos.Web",
+ "id": "./",
+ "start_url": "./",
+ "display": "standalone",
+ "background_color": "#ffffff",
+ "theme_color": "#03173d",
+ "prefer_related_applications": false,
+ "icons": [
+ {
+ "src": "icon-512.png",
+ "type": "image/png",
+ "sizes": "512x512"
+ },
+ {
+ "src": "icon-192.png",
+ "type": "image/png",
+ "sizes": "192x192"
+ }
+ ]
+}
diff --git a/Mordos.Web/wwwroot/service-worker.js b/Mordos.Web/wwwroot/service-worker.js
new file mode 100644
index 0000000..fe614da
--- /dev/null
+++ b/Mordos.Web/wwwroot/service-worker.js
@@ -0,0 +1,4 @@
+// In development, always fetch from the network and do not enable offline support.
+// This is because caching would make development more difficult (changes would not
+// be reflected on the first load after each change).
+self.addEventListener('fetch', () => { });
diff --git a/Mordos.Web/wwwroot/service-worker.published.js b/Mordos.Web/wwwroot/service-worker.published.js
new file mode 100644
index 0000000..1f7f543
--- /dev/null
+++ b/Mordos.Web/wwwroot/service-worker.published.js
@@ -0,0 +1,55 @@
+// Caution! Be sure you understand the caveats before publishing an application with
+// offline support. See https://aka.ms/blazor-offline-considerations
+
+self.importScripts('./service-worker-assets.js');
+self.addEventListener('install', event => event.waitUntil(onInstall(event)));
+self.addEventListener('activate', event => event.waitUntil(onActivate(event)));
+self.addEventListener('fetch', event => event.respondWith(onFetch(event)));
+
+const cacheNamePrefix = 'offline-cache-';
+const cacheName = `${cacheNamePrefix}${self.assetsManifest.version}`;
+const offlineAssetsInclude = [ /\.dll$/, /\.pdb$/, /\.wasm/, /\.html/, /\.js$/, /\.json$/, /\.css$/, /\.woff$/, /\.png$/, /\.jpe?g$/, /\.gif$/, /\.ico$/, /\.blat$/, /\.dat$/ ];
+const offlineAssetsExclude = [ /^service-worker\.js$/ ];
+
+// Replace with your base path if you are hosting on a subfolder. Ensure there is a trailing '/'.
+const base = "/";
+const baseUrl = new URL(base, self.origin);
+const manifestUrlList = self.assetsManifest.assets.map(asset => new URL(asset.url, baseUrl).href);
+
+async function onInstall(event) {
+ console.info('Service worker: Install');
+
+ // Fetch and cache all matching items from the assets manifest
+ const assetsRequests = self.assetsManifest.assets
+ .filter(asset => offlineAssetsInclude.some(pattern => pattern.test(asset.url)))
+ .filter(asset => !offlineAssetsExclude.some(pattern => pattern.test(asset.url)))
+ .map(asset => new Request(asset.url, { integrity: asset.hash, cache: 'no-cache' }));
+ await caches.open(cacheName).then(cache => cache.addAll(assetsRequests));
+}
+
+async function onActivate(event) {
+ console.info('Service worker: Activate');
+
+ // Delete unused caches
+ const cacheKeys = await caches.keys();
+ await Promise.all(cacheKeys
+ .filter(key => key.startsWith(cacheNamePrefix) && key !== cacheName)
+ .map(key => caches.delete(key)));
+}
+
+async function onFetch(event) {
+ let cachedResponse = null;
+ if (event.request.method === 'GET') {
+ // For all navigation requests, try to serve index.html from cache,
+ // unless that request is for an offline resource.
+ // If you need some URLs to be server-rendered, edit the following check to exclude those URLs
+ const shouldServeIndexHtml = event.request.mode === 'navigate'
+ && !manifestUrlList.some(url => url === event.request.url);
+
+ const request = shouldServeIndexHtml ? 'index.html' : event.request;
+ const cache = await caches.open(cacheName);
+ cachedResponse = await cache.match(request);
+ }
+
+ return cachedResponse || fetch(event.request);
+}
diff --git a/Mordos.sln b/Mordos.sln
index 57ce603..b1174da 100644
--- a/Mordos.sln
+++ b/Mordos.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
-VisualStudioVersion = 17.14.36401.2 d17.14
+VisualStudioVersion = 17.14.36401.2
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mordos.API", "Mordos.API\Mordos.API.csproj", "{09494C88-573A-7C71-DC03-749DEBCF8716}"
EndProject
@@ -14,6 +14,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utilities", "Utilities", "{
.mcp.json = .mcp.json
EndProjectSection
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mordos.Web", "Mordos.Web\Mordos.Web.csproj", "{9A9ED2D5-9139-0C2D-CB7E-4D251C5E92F5}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -32,6 +34,10 @@ Global
{EF99234D-3FE5-6B80-8EFE-0E07656385D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EF99234D-3FE5-6B80-8EFE-0E07656385D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EF99234D-3FE5-6B80-8EFE-0E07656385D0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9A9ED2D5-9139-0C2D-CB7E-4D251C5E92F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9A9ED2D5-9139-0C2D-CB7E-4D251C5E92F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9A9ED2D5-9139-0C2D-CB7E-4D251C5E92F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9A9ED2D5-9139-0C2D-CB7E-4D251C5E92F5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE