From 22def9b01c8c123271cde53b0e4ce7d76a0f5416 Mon Sep 17 00:00:00 2001 From: Erik Arvstedt Date: Mon, 11 Jul 2022 20:18:10 +0200 Subject: [PATCH] frontend: Don't copy resources to language dirs Since 355e89ce5, the frontend references resources via root-relative URLs. This means that `resources` dirs in the language dirs are no longer accessed and can be removed. Achieve this by defining a specific `assets` production config that doesn't include `src/resources`. As of fd35c8f4a, this shrinks the frontend size by 55% (279M -> 124M). Also, the nginx location configs now can be simplified. --- frontend/angular.json | 4 ++++ frontend/package.json | 2 +- frontend/sync-assets.js | 2 +- nginx-mempool.conf | 6 +----- production/mempool.crontab | 2 +- production/nginx/server-common.conf | 8 +------- 6 files changed, 9 insertions(+), 15 deletions(-) diff --git a/frontend/angular.json b/frontend/angular.json index 4eb697071..1ed29cad9 100644 --- a/frontend/angular.json +++ b/frontend/angular.json @@ -170,6 +170,10 @@ }, "configurations": { "production": { + "assets": [ + "src/favicon.ico", + "src/robots.txt" + ], "fileReplacements": [ { "replace": "src/environments/environment.ts", diff --git a/frontend/package.json b/frontend/package.json index d2f7f2f6c..b5055a5de 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -34,7 +34,7 @@ "start:local-staging": "npm run generate-config && npm run sync-assets-dev && npm run ng -- serve -c local-staging", "start:mixed": "npm run generate-config && npm run sync-assets-dev && npm run ng -- serve -c mixed", "build": "npm run generate-config && npm run ng -- build --configuration production --localize && npm run sync-assets && npm run build-mempool.js", - "sync-assets": "node sync-assets.js && rsync -av ./dist/mempool/browser/en-US/resources ./dist/mempool/browser/resources", + "sync-assets": "rsync -av ./src/resources ./dist/mempool/browser && node sync-assets.js", "sync-assets-dev": "node sync-assets.js dev", "generate-config": "node generate-config.js", "build-mempool.js": "npm run build-mempool-js && npm run build-mempool-liquid-js && npm run build-mempool-bisq-js", diff --git a/frontend/sync-assets.js b/frontend/sync-assets.js index a6b59bdb1..8937e2abb 100644 --- a/frontend/sync-assets.js +++ b/frontend/sync-assets.js @@ -4,7 +4,7 @@ var fs = require('fs'); const CONFIG_FILE_NAME = 'mempool-frontend-config.json'; let configContent = {}; -var PATH = 'dist/mempool/browser/en-US/resources/'; +var PATH = 'dist/mempool/browser/resources/'; if (process.argv[2] && process.argv[2] === 'dev') { PATH = 'src/resources/'; } diff --git a/nginx-mempool.conf b/nginx-mempool.conf index 58d45f3cc..a6f701478 100644 --- a/nginx-mempool.conf +++ b/nginx-mempool.conf @@ -18,7 +18,7 @@ expires 10m; } location /resources { - try_files /$lang/$uri /$lang/$uri/ $uri $uri/ /en-US/$uri @index-redirect; + try_files $uri @index-redirect; expires 1h; } location @index-redirect { @@ -27,10 +27,6 @@ # location block using regex are matched in order - # used to rewrite resources from // to /en-US/ - location ~ ^/(ar|bg|bs|ca|cs|da|de|et|el|es|eo|eu|fa|fr|gl|ko|hr|id|it|he|ka|lv|lt|hu|mk|ms|nl|ja|nb|nn|pl|pt|pt-BR|ro|ru|sk|sl|sr|sh|fi|sv|th|tr|uk|vi|zh|hi)/resources/ { - rewrite ^/[a-zA-Z-]*/resources/(.*) /en-US/resources/$1; - } # used for cookie override location ~ ^/(ar|bg|bs|ca|cs|da|de|et|el|es|eo|eu|fa|fr|gl|ko|hr|id|it|he|ka|lv|lt|hu|mk|ms|nl|ja|nb|nn|pl|pt|pt-BR|ro|ru|sk|sl|sr|sh|fi|sv|th|tr|uk|vi|zh|hi)/ { try_files $uri $uri/ /$1/index.html =404; diff --git a/production/mempool.crontab b/production/mempool.crontab index cc1bcd878..0e7b6af6b 100644 --- a/production/mempool.crontab +++ b/production/mempool.crontab @@ -5,5 +5,5 @@ 37 13 * * * sleep 30 ; /mempool/mempool.space/backup >/dev/null 2>&1 & # hourly liquid asset update -6 * * * * cd $HOME/liquid/frontend && npm run sync-assets && rsync -av $HOME/liquid/frontend/dist/mempool/browser/en-US/resources/assets* $HOME/public_html/liquid/en-US/resources/ >/dev/null 2>&1 +6 * * * * cd $HOME/liquid/frontend && npm run sync-assets && rsync -av $HOME/liquid/frontend/dist/mempool/browser/resources/assets* $HOME/public_html/liquid/resources/ >/dev/null 2>&1 diff --git a/production/nginx/server-common.conf b/production/nginx/server-common.conf index 26e81f7fa..dedd36411 100644 --- a/production/nginx/server-common.conf +++ b/production/nginx/server-common.conf @@ -58,12 +58,6 @@ location = / { expires 5m; } -# used to rewrite resources from // to /en-US/ -# cache /resources/** for 1 week since they don't change often -location ~ ^/[a-z][a-z]/resources/(.*) { - try_files $uri /en-US/resources/$1 =404; - expires 1w; -} # cache //main.f40e91d908a068a2.js forever since they never change location ~ ^/([a-z][a-z])/(.+\..+\.(js|css)) { try_files $uri =404; @@ -84,7 +78,7 @@ location ~ ^/([a-z][a-z])/ { # cache /resources/** for 1 week since they don't change often location /resources { - try_files $uri /en-US/$uri /en-US/index.html; + try_files $uri /en-US/index.html; expires 1w; } # cache /main.f40e91d908a068a2.js forever since they never change