summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2023-03-08 17:32:39 -0500
committerGravatar GitHub <noreply@github.com> 2023-03-08 17:32:39 -0500
commitec0455352568ab3ea3c5ec1625f582aa54d15bb7 (patch)
tree8f9c2ad2fd6a8d0b0f0e40dee7402a12cde67872
parent401b97ad0e3d057f5022189e5883aacb5d34c55a (diff)
downloadastro-ec0455352568ab3ea3c5ec1625f582aa54d15bb7.tar.gz
astro-ec0455352568ab3ea3c5ec1625f582aa54d15bb7.tar.zst
astro-ec0455352568ab3ea3c5ec1625f582aa54d15bb7.zip
Fix asset loading in dev mode (#6466)
* Fix asset loading in dev mode * Proper windows support
-rw-r--r--.changeset/red-candles-retire.md5
-rw-r--r--packages/astro/src/assets/vite-plugin-assets.ts6
-rw-r--r--packages/astro/test/core-image.test.js7
3 files changed, 15 insertions, 3 deletions
diff --git a/.changeset/red-candles-retire.md b/.changeset/red-candles-retire.md
new file mode 100644
index 000000000..6614639f0
--- /dev/null
+++ b/.changeset/red-candles-retire.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+In dev, load assets relative to the root
diff --git a/packages/astro/src/assets/vite-plugin-assets.ts b/packages/astro/src/assets/vite-plugin-assets.ts
index 020ac6758..9f8cbd53e 100644
--- a/packages/astro/src/assets/vite-plugin-assets.ts
+++ b/packages/astro/src/assets/vite-plugin-assets.ts
@@ -78,8 +78,8 @@ export default function assets({
return next();
}
- const filePathURL = new URL(filePath, 'file:');
- const file = await fs.readFile(filePathURL.pathname);
+ const filePathURL = new URL('.' + filePath, settings.config.root);
+ const file = await fs.readFile(filePathURL);
// Get the file's metadata from the URL
let meta = getOrigQueryParams(filePathURL.searchParams);
@@ -109,7 +109,7 @@ export default function assets({
format = result.format;
}
- res.setHeader('Content-Type', mime.getType(fileURLToPath(url)) || `image/${format}`);
+ res.setHeader('Content-Type', mime.getType(fileURLToPath(filePathURL)) || `image/${format}`);
res.setHeader('Cache-Control', 'max-age=360000');
const stream = Readable.from(data);
diff --git a/packages/astro/test/core-image.test.js b/packages/astro/test/core-image.test.js
index d6b6642c3..e8fd1f423 100644
--- a/packages/astro/test/core-image.test.js
+++ b/packages/astro/test/core-image.test.js
@@ -72,6 +72,13 @@ describe('astro:image', () => {
expect($img.attr('alt')).to.equal('a penguin');
});
+ it('middleware loads the file', async() => {
+ let $img = $('#local img');
+ let src = $img.attr('src');
+ let res = await fixture.fetch(src);
+ expect(res.status).to.equal(200);
+ });
+
it('errors on unsupported formats', async () => {
logs.length = 0;
let res = await fixture.fetch('/unsupported-format');