Skip to content

Always download blazor-hotreload.js from app root #36897

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 23, 2021

Conversation

pranavkm
Copy link
Contributor

Port #35737 to release/6.0-rc2

Description

Hot reload for WebAssembly attempts to download a JS script as part of booting up the app which is served from the root of the app (e.g. /_framework/blazor-hotreload.js). Blazor constructs a URL for the script and downloads it. Currently this URL is relative to where Blazor is hosted. Blazor also allows a way to configure it to be served from a subdirectory of the app root. In this case, the URL for the script is incorrectly constructed (e.g. /mycustomsubdir/_framework/blazor-hotreload.js) which causes the app to fail loading.

Regression

No.

Testing

The change was manually tested.

Risk

There's a very uncommon scenario where the user does additional work to host the entire app of a virtual subdirectory which this change regresses. However, other scripts scripts that VS injects in to the app (browser-link for css updates) are already broken in this case so we're not making things significantly worse.

Issues

Fixes #35555
Fixes #35967

The middleware that we inject always listens to the root of the app. While this might not play very nicely if the app
is running off a virtual path, listening to the root is what we do with the aspnet-browser-refresh.js script and we've had no issue
reports with it thus far.

Fixes #35555
@pranavkm pranavkm requested a review from a team as a code owner September 23, 2021 18:37
@ghost ghost added the area-blazor Includes: Blazor, Razor Components label Sep 23, 2021
@mkArtakMSFT mkArtakMSFT added this to the 6.0-rc2 milestone Sep 23, 2021
@mkArtakMSFT mkArtakMSFT added the Servicing-consider Shiproom approval is required for the issue label Sep 23, 2021
@ghost
Copy link

ghost commented Sep 23, 2021

"Hi pranavkm. Please make sure you've updated the PR description to use the Shiproom Template. Also, make sure this PR is not marked as a draft and is ready-to-merge.

To learn more about how to prepare a servicing PR click here.

@mkArtakMSFT mkArtakMSFT added Servicing-approved Shiproom has approved the issue and removed Servicing-consider Shiproom approval is required for the issue labels Sep 23, 2021
Copy link
Contributor

@mkArtakMSFT mkArtakMSFT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @pranavkm !

@TanayParikh
Copy link
Contributor

@dotnet/aspnet-build requesting merge.

@wtgodbe wtgodbe merged commit 365a9c4 into release/6.0-rc2 Sep 23, 2021
@wtgodbe wtgodbe deleted the prkrishn/port-35737-2 branch September 23, 2021 20:14
BrennanConroy added a commit that referenced this pull request Sep 24, 2021
* Update WiX to signed build (#36865)

- #12078

* Always download blazor-hotreload.js from app root (#36897)

The middleware that we inject always listens to the root of the app. While this might not play very nicely if the app
is running off a virtual path, listening to the root is what we do with the aspnet-browser-refresh.js script and we've had no issue
reports with it thus far.

Fixes #35555

* Improve Results.Problem and Results.ValidationProblem APIs (#36856)

* [release/6.0-rc2] Update sdk to 6.0.100-rc.2.21470.55 (#36783)

* Update sdk to 6.0.100-rc.2.21470.55

Co-authored-by: Will Godbe <[email protected]>

Co-authored-by: Doug Bunting <[email protected]>
Co-authored-by: Pranav K <[email protected]>
Co-authored-by: Safia Abdalla <[email protected]>
Co-authored-by: Stephen Halter <[email protected]>
Co-authored-by: Will Godbe <[email protected]>
Co-authored-by: Brennan <[email protected]>
@mthrift2100
Copy link

I believe this fix does break our design pattern. We host several blazor WASM apps with ASP.NETCore hosted backends on a single IIS Web Server. IIS handles the initial routing of the route. mywebsite.com/Web1 to a virtual directory.

@ghost
Copy link

ghost commented Dec 10, 2021

Hi @mthrift2100. It looks like you just commented on a closed PR. The team will most probably miss it. If you'd like to bring something important up to their attention, consider filing a new issue and add enough details to build context.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-blazor Includes: Blazor, Razor Components Servicing-approved Shiproom has approved the issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants