Serve .msi as download and update installer link

Add nginx rule to serve .msi files as application/octet-stream with Content-Disposition: attachment and X-Content-Type-Options: nosniff, returning 404 when missing. Update Home.vue to build the installer download URL from import.meta.env.BASE_URL and bind it to the CTA link (using :href) instead of a hardcoded path, ensuring the installer link respects the app base URL.
This commit is contained in:
Starystars67
2026-04-02 02:13:11 +01:00
parent 44268d076d
commit 4626a69185
2 changed files with 9 additions and 1 deletions

View File

@@ -12,6 +12,13 @@ server {
try_files $uri $uri/ /index.html;
}
location ~* \.msi$ {
default_type application/octet-stream;
add_header Content-Disposition 'attachment';
add_header X-Content-Type-Options nosniff;
try_files $uri =404;
}
# Let real 404s for assets return 404s; Vue handles route-level 404 via the SPA fallback above.
location /static/ {

View File

@@ -24,6 +24,7 @@ const totalServers = ref('...')
const isLoading = ref(true)
const heroImageLoaded = ref(false)
const heroImageSrc = ref(landingLq)
const installerDownloadUrl = `${import.meta.env.BASE_URL}installer/BeamMP_Installer.msi`
onMounted(async () => {
try {
@@ -193,7 +194,7 @@ const faqs = computed(() => [
<!-- CTA Buttons -->
<div class="flex flex-col sm:flex-row gap-4 justify-center items-center pt-4">
<a
href="/installer/BeamMP_Installer.msi"
:href="installerDownloadUrl"
download
class="group flex items-center gap-3 bg-linear-to-r from-beammp-orange to-red-600 hover:from-red-600 hover:to-beammp-orange px-8 py-4 rounded-lg font-semibold text-lg transition-all transform hover:scale-105 shadow-lg hover:shadow-beammp-orange/50 text-white"
>