Skip to content

Commit 7ee5aa6

Browse files
committed
Adapt for base URL that could be /
1 parent a978e8c commit 7ee5aa6

File tree

3 files changed

+15
-16
lines changed

3 files changed

+15
-16
lines changed

astro.config.mjs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ import cloudflare from "@astrojs/cloudflare";
44
import tailwindcss from "@tailwindcss/vite";
55
import react from "@astrojs/react";
66

7+
const BASE_URL = process.env.BASE_URL || "/";
8+
const base = BASE_URL.endsWith('/') ? BASE_URL : BASE_URL + '/';
9+
710
// https://astro.build/config
811
export default defineConfig({
9-
base: "/app",
10-
build: {
11-
assetsPrefix: "/app",
12-
},
12+
base,
1313
security: {
1414
checkOrigin: false,
1515
},
@@ -33,4 +33,4 @@ export default defineConfig({
3333
: undefined,
3434
},
3535
},
36-
});
36+
});

src/components/FileUploader.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ export default function FileUploader() {
2020
"simple"
2121
);
2222

23+
const assetsPrefix = import.meta.env.BASE_URL.endsWith('/') ?
24+
import.meta.env.BASE_URL : import.meta.env.BASE_URL + '/';
25+
2326
// File type icons mapping
2427
const fileIcons: Record<string, string> = {
2528
pdf: "📄",
@@ -70,7 +73,7 @@ export default function FileUploader() {
7073
const loadFiles = async () => {
7174
try {
7275
setLoading(true);
73-
const response = await fetch(`${import.meta.env.BASE_URL}/api/list-assets`);
76+
const response = await fetch(`${assetsPrefix}api/list-assets`);
7477

7578
if (!response.ok) {
7679
throw new Error("Failed to load files");
@@ -119,7 +122,7 @@ export default function FileUploader() {
119122
formData.append("file", file);
120123

121124

122-
const response = await fetch(`${import.meta.env.BASE_URL}/api/upload`, {
125+
const response = await fetch(`${assetsPrefix}api/upload`, {
123126
method: "POST",
124127
body: formData,
125128
});
@@ -154,8 +157,7 @@ export default function FileUploader() {
154157
setProgress(0);
155158

156159
try {
157-
const assetsPrefix = import.meta.env.ASSETS_PREFIX || "";
158-
const BASE_CF_URL = `${assetsPrefix}/api/multipart-upload`;
160+
const BASE_CF_URL = `${assetsPrefix}api/multipart-upload`;
159161
const key = file.name;
160162
const CHUNK_SIZE = 5 * 1024 * 1024; // 5MB
161163
const totalParts = Math.ceil(file.size / CHUNK_SIZE);
@@ -527,7 +529,7 @@ export default function FileUploader() {
527529
const fileLink =
528530
file.link ||
529531
(file.key
530-
? `${import.meta.env.ASSETS_PREFIX}/api/asset?key=${file.key}`
532+
? `${assetsPrefix}api/asset?key=${file.key}`
531533
: "");
532534
const uploadDate =
533535
file.dateUploaded || file.uploaded || new Date().toISOString();

src/pages/files.astro

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
---
22
import Layout from '../layouts/Layout.astro';
3-
4-
// Get the assets prefix from environment
5-
const assetsPrefix = Astro.locals.runtime?.env?.ASSETS_PREFIX || '/app';
63
---
74

85
<Layout title="File Uploader">
@@ -76,7 +73,7 @@ const assetsPrefix = Astro.locals.runtime?.env?.ASSETS_PREFIX || '/app';
7673
</Layout>
7774

7875
<script>
79-
const assetsPrefix = '${assetsPrefix}';
76+
const assetsPrefix = import.meta.env.BASE_URL;
8077

8178
// DOM elements
8279
const uploadForm = document.getElementById('uploadForm') as HTMLFormElement;
@@ -161,7 +158,7 @@ const assetsPrefix = Astro.locals.runtime?.env?.ASSETS_PREFIX || '/app';
161158
loadingFiles.classList.remove('hidden');
162159
filesList.innerHTML = '';
163160

164-
const response = await fetch(`${assetsPrefix}/api/list-assets`);
161+
const response = await fetch(`${assetsPrefix}api/list-assets`);
165162
if (!response.ok) {
166163
throw new Error('Failed to load files');
167164
}
@@ -244,7 +241,7 @@ const assetsPrefix = Astro.locals.runtime?.env?.ASSETS_PREFIX || '/app';
244241
progressBar.style.width = `${progress}%`;
245242
progressText.textContent = `Uploading ${file.name}...`;
246243

247-
const response = await fetch(`${assetsPrefix}/api/upload`, {
244+
const response = await fetch(`${assetsPrefix}api/upload`, {
248245
method: 'POST',
249246
body: formData
250247
});

0 commit comments

Comments
 (0)