diff options
author | 2022-05-05 22:39:16 +0000 | |
---|---|---|
committer | 2022-05-05 22:39:16 +0000 | |
commit | 19e1686b8701ea7c4f8449958911035ae29cb53a (patch) | |
tree | 7ab949841198a07f0b000418834165f267e51cfe | |
parent | f67832ebf7a51c1f7286869d6ac0d0fddd45faa4 (diff) | |
download | astro-19e1686b8701ea7c4f8449958911035ae29cb53a.tar.gz astro-19e1686b8701ea7c4f8449958911035ae29cb53a.tar.zst astro-19e1686b8701ea7c4f8449958911035ae29cb53a.zip |
Allowing Vite to handle base config for deploying to subpaths (#3178)
* Revert "Improvements to build and dev when building for subpaths (#3156)"
This reverts commit 637919c8b63df1608e88d153742db098722265d8.
* letting Vite handle base paths
* test updates to expect Astro.request.url to no longer include subpaths
* bringing back the fix for including subpaths in injects scripts and styles
* fixing the static-build test to handle subpaths for injected CSS
* fixing asset import URLs when using base subpaths
* chore: fixing typo in the comments
* Astro needs to manage base in dev to maintain Astro.request.url
* fix: reverting dev routing tests to expect existing behavior
* reverting Astro global test to verify existing behavior
* chore: adding changeset
* test: update static-build tests to verify the subpath is used in asset imports
-rw-r--r-- | .changeset/pretty-pumpkins-work.md | 5 | ||||
-rw-r--r-- | packages/astro/src/core/build/static-build.ts | 2 | ||||
-rw-r--r-- | packages/astro/src/core/config.ts | 4 | ||||
-rw-r--r-- | packages/astro/test/static-build.test.js | 3 |
4 files changed, 11 insertions, 3 deletions
diff --git a/.changeset/pretty-pumpkins-work.md b/.changeset/pretty-pumpkins-work.md new file mode 100644 index 000000000..40d19f5cd --- /dev/null +++ b/.changeset/pretty-pumpkins-work.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes an issue that was breaking asset and stylesheet URLs when building for a subpath diff --git a/packages/astro/src/core/build/static-build.ts b/packages/astro/src/core/build/static-build.ts index 2884174f4..6150dd995 100644 --- a/packages/astro/src/core/build/static-build.ts +++ b/packages/astro/src/core/build/static-build.ts @@ -162,7 +162,7 @@ async function ssrBuild(opts: StaticBuildOptions, internals: BuildInternals, inp root: viteConfig.root, envPrefix: 'PUBLIC_', server: viteConfig.server, - base: astroConfig.site ? new URL(astroConfig.site).pathname : '/', + base: astroConfig.base, ssr: viteConfig.ssr, resolve: viteConfig.resolve, } as ViteConfigWithSSR; diff --git a/packages/astro/src/core/config.ts b/packages/astro/src/core/config.ts index 74942e56f..8b16ce5a0 100644 --- a/packages/astro/src/core/config.ts +++ b/packages/astro/src/core/config.ts @@ -14,7 +14,7 @@ import load, { resolve, ProloadError } from '@proload/core'; import loadTypeScript from '@proload/plugin-tsm'; import postcssrc from 'postcss-load-config'; import { arraify, isObject } from './util.js'; -import { appendForwardSlash, trimSlashes } from './path.js'; +import { appendForwardSlash, prependForwardSlash, trimSlashes } from './path.js'; load.use([loadTypeScript]); @@ -95,7 +95,7 @@ export const AstroConfigSchema = z.object({ .string() .optional() .default('/') - .transform((val) => appendForwardSlash(trimSlashes(val))), + .transform((val) => prependForwardSlash(appendForwardSlash(trimSlashes(val)))), trailingSlash: z .union([z.literal('always'), z.literal('never'), z.literal('ignore')]) .optional() diff --git a/packages/astro/test/static-build.test.js b/packages/astro/test/static-build.test.js index a461209a2..ce470b2b6 100644 --- a/packages/astro/test/static-build.test.js +++ b/packages/astro/test/static-build.test.js @@ -96,6 +96,9 @@ describe('Static build', () => { for (const link of links) { const href = $(link).attr('href'); + // The imported .scss file should include the base subpath in the href + expect(href.startsWith('/subpath/')).to.be.true; + /** * The link should be built with the config's `base` included * as a subpath. |