From 81ab62b154ae9df4a55a02c9e0977a0caadc27a9 Mon Sep 17 00:00:00 2001 From: Kevin Kandlbinder Date: Wed, 23 Dec 2020 02:17:51 +0100 Subject: [PATCH] Fix assets being redirected by redirector --- gatsby-config.js | 4 ++ package-lock.json | 103 +++++++++++++++++++++++++++++++++ package.json | 3 +- src/server/languageRedirect.js | 4 ++ 4 files changed, 113 insertions(+), 1 deletion(-) diff --git a/gatsby-config.js b/gatsby-config.js index bea375d..7423e12 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -7,7 +7,11 @@ module.exports = { siteUrl: extConfig.siteURL, keywords: extConfig.siteKeywords }, + assetPrefix: "/assets", plugins: [ + { + resolve: "gatsby-plugin-asset-path" + }, `gatsby-plugin-sharp`, `gatsby-transformer-json`, { diff --git a/package-lock.json b/package-lock.json index bfa6006..22a1a82 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10429,6 +10429,29 @@ "micromatch": "^4.0.2" } }, + "gatsby-plugin-asset-path": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gatsby-plugin-asset-path/-/gatsby-plugin-asset-path-3.0.2.tgz", + "integrity": "sha512-XofmAtDhRP0Zo21O/ljdH8Bcrfn2BzaTC3lDXz6GsGymZ8wstfwRs6kGHwFGfjJIfaB0y26wGc3ADljRmLVk7g==", + "requires": { + "fs-extra": "^7.0.0", + "history": "^4.7.2", + "react": "^16.4.2", + "react-router-dom": "^4.3.1" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, "gatsby-plugin-manifest": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-2.9.0.tgz", @@ -11802,6 +11825,19 @@ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-8.9.1.tgz", "integrity": "sha1-uKnFSTISqTkvAiK2SclhFJfr+4g=" }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -16986,6 +17022,53 @@ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" }, + "react-router": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz", + "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", + "requires": { + "history": "^4.7.2", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.1", + "warning": "^4.0.1" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "react-router-dom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz", + "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", + "requires": { + "history": "^4.7.2", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.1", + "react-router": "^4.3.1", + "warning": "^4.0.1" + } + }, "react-side-effect": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz", @@ -17647,6 +17730,11 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -19734,6 +19822,16 @@ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" }, + "tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, "tinycolor2": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", @@ -20447,6 +20545,11 @@ "spdx-expression-parse": "^3.0.0" } }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/package.json b/package.json index 6b0b334..31ca685 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "scripts": { "develop": "gatsby develop", "start": "gatsby develop", - "build": "gatsby build", + "build": "gatsby build --prefix-paths", "build:fab": "npm run build && npm run fab:build", "fab:build": "fab build", "fab:serve": "fab serve fab.zip", @@ -23,6 +23,7 @@ "@babel/plugin-transform-typescript": "^7.12.1", "babel-plugin-i18next-extract": "^0.8.2", "gatsby": "^2.26.1", + "gatsby-plugin-asset-path": "^3.0.2", "gatsby-plugin-manifest": "^2.9.0", "gatsby-plugin-offline": "^3.7.0", "gatsby-plugin-react-helmet": "^3.7.0", diff --git a/src/server/languageRedirect.js b/src/server/languageRedirect.js index a0124f8..2b89e9d 100644 --- a/src/server/languageRedirect.js +++ b/src/server/languageRedirect.js @@ -13,6 +13,10 @@ async function checkLang({ request }) { let requestURL = new URL(url); + if(requestURL.pathname.startsWith("/assets") || requestURL.pathname.startsWith("/icons") || requestURL.pathname.startsWith("/manifest.webmanifest")) { + return; + } + for (let i = 0; i < config.languages.length; i++) { const language = config.languages[i];