Skip to content

Commit 66e873c

Browse files
committed
Revert unnecessary SVG routing workarounds - only keep the S3 content-type fix
1 parent 230f218 commit 66e873c

File tree

5 files changed

+7
-57
lines changed

5 files changed

+7
-57
lines changed

apps/builder/app/routes/cgi.asset.$.ts

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {
88
decodePathFragment,
99
} from "@webstudio-is/sdk";
1010
import { fileUploadPath } from "~/shared/asset-client";
11-
import env from "~/env/env.server";
1211

1312
// This route serves generic assets without processing
1413
export const loader = async ({ request }: LoaderFunctionArgs) => {
@@ -26,38 +25,6 @@ export const loader = async ({ request }: LoaderFunctionArgs) => {
2625
});
2726
}
2827

29-
// In production, proxy to the storage origin (R2/S3)
30-
if (env.RESIZE_ORIGIN !== undefined) {
31-
const assetUrl = new URL(env.RESIZE_ORIGIN + url.pathname);
32-
33-
const response = await fetch(assetUrl.href, {
34-
headers: {
35-
accept: request.headers.get("accept") ?? "",
36-
"accept-encoding": request.headers.get("accept-encoding") ?? "",
37-
},
38-
});
39-
40-
if (!response.ok) {
41-
console.error(
42-
`Request to asset url ${assetUrl.href} responded with status = ${response.status}`
43-
);
44-
throw new Response("Not found", {
45-
status: response.status,
46-
});
47-
}
48-
49-
// Override content-type from storage with correct MIME type based on filename
50-
const contentType = getMimeTypeByFilename(name);
51-
const responseHeaders = new Headers(response.headers);
52-
responseHeaders.set("content-type", contentType);
53-
responseHeaders.set("Access-Control-Allow-Origin", url.origin);
54-
55-
return new Response(response.body, {
56-
status: response.status,
57-
headers: responseHeaders,
58-
});
59-
}
60-
6128
// Support absolute urls locally
6229
if (URL.canParse(name)) {
6330
return fetch(name);

apps/builder/app/routes/cgi.image.$.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ export const loader = async ({ request }: LoaderFunctionArgs) => {
7171

7272
if (env.RESIZE_ORIGIN !== undefined) {
7373
const imgHref = wsImageLoader({
74-
...imageParameters,
7574
src: name,
75+
...imageParameters,
7676
format: "auto",
7777
});
7878

packages/image/src/image-loaders.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,6 @@ export const wsImageLoader: ImageLoader = (props) => {
3535
src = src.slice("/cgi/asset".length);
3636
}
3737

38-
// Route SVGs through /cgi/asset/ to avoid image optimization
39-
if (src.toLowerCase().endsWith(".svg")) {
40-
return `/cgi/asset/${encodePathFragment(src)}`;
41-
}
42-
4338
const resultUrl = new URL("/cgi/image/", NON_EXISTING_DOMAIN);
4439

4540
if (props.format !== "raw") {

packages/sdk/src/assets.test.ts

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -461,20 +461,11 @@ describe("allowed-file-types", () => {
461461

462462
test("generates correct URL for image assets", () => {
463463
const url = getAssetUrl(mockImageAsset, "https://example.com");
464-
expect(url.href).toBe("https://example.com/cgi/image/photo.jpg");
464+
expect(url.href).toBe(
465+
"https://example.com/cgi/image/photo.jpg?format=raw"
466+
);
465467
expect(url.pathname).toBe("/cgi/image/photo.jpg");
466-
expect(url.search).toBe("");
467-
});
468-
469-
test("generates correct URL for SVG assets via asset route", () => {
470-
const svgAsset = {
471-
...mockImageAsset,
472-
name: "icon.svg",
473-
format: "svg",
474-
};
475-
const url = getAssetUrl(svgAsset, "https://example.com");
476-
expect(url.href).toBe("https://example.com/cgi/asset/icon.svg");
477-
expect(url.pathname).toBe("/cgi/asset/icon.svg");
468+
expect(url.search).toBe("?format=raw");
478469
});
479470

480471
test("generates correct URL for video assets", () => {

packages/sdk/src/assets.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -410,11 +410,8 @@ export const getAssetUrl = (asset: Asset, origin: string): URL => {
410410
let path: string;
411411
const assetType = detectAssetType(asset.name);
412412

413-
// Route SVGs to the asset endpoint to avoid image optimization
414-
if (asset.name.toLowerCase().endsWith(".svg")) {
415-
path = `/cgi/asset/${asset.name}`;
416-
} else if (assetType === "image") {
417-
path = `/cgi/image/${asset.name}`;
413+
if (assetType === "image") {
414+
path = `/cgi/image/${asset.name}?format=raw`;
418415
} else if (assetType === "video") {
419416
path = `/cgi/video/${asset.name}`;
420417
} else {

0 commit comments

Comments
 (0)