Skip to content
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

[Static Assets] Improve development experience #57671

Merged
merged 1 commit into from
Sep 4, 2024

Conversation

javiercn
Copy link
Member

@javiercn javiercn commented Sep 2, 2024

  • Logs a warning when a file is not found during development and static web assets don't appear enabled.
  • Avoids wiring up any development functionality against the published output, even if the environment is set to Development.

Fixes https://github.com/dotnet/AspNetCore-ManualTests/issues/3007, #57449

The endpoint manifest exposes the manifest type (Build | Publish) dotnet/sdk#43167 and we read it here to key off certain things:

  • Turning on Development features only when running against build output.
  • Improving the error message when we detect that static web assets weren't enabled if running against the build output.

@javiercn javiercn merged commit 3586ac9 into main Sep 4, 2024
27 checks passed
@javiercn javiercn deleted the javiercn/improve-developer-experience branch September 4, 2024 15:42
@dotnet-policy-service dotnet-policy-service bot added this to the 10.0-preview1 milestone Sep 4, 2024
@javiercn
Copy link
Member Author

javiercn commented Sep 9, 2024

/backport to release/9.0

Copy link
Contributor

github-actions bot commented Sep 9, 2024

Started backporting to release/9.0: https://github.com/dotnet/aspnetcore/actions/runs/10776920258

mkArtakMSFT pushed a commit that referenced this pull request Sep 10, 2024
Backport of #57671 to release/9.0

/cc @javiercn

# [Static Assets] Improve development experience

Fixes an issue when running a published app on Development and provides a better error when static web assets are not enabled during development

## Description

- Addresses two issues that we found during development:
  - When the user publishes the app and runs against the `Development` environment:
    - Some logic that is pivoted on based on the Environment and is only used during development (Build as opposed to Publish) interferes with the output and causes issues on the running app.
  - When the app runs during development, but Static Web Assets are not enabled for some reason:
    - The app isn't able to find some static files and errors out.
    - The fix improves the experience by detecting this situation and logging a warning on the console with instructions on how to enable static web assets explicitly.

## Customer Impact

* Running in Docker 'Regular Mode' in Visual Studio breaks as the app runs the published output with `Development` environment.
* Running the app during development with a custom environment or without a launch profile will cause some static files to not be found.

## Regression?

- [X] Yes
- [ ] No

8.0 and earlier, the published output was runnable in `Development` environment. For example in Docker containers regular mode (how the issue was found).

## Risk

- [ ] High
- [ ] Medium
- [X] Low

The changes uses information that we produce during the build (Build and Publish) to differentiate between the two scenarios and disable the development functionality for the published output and provide a better error message when static web assets are not enabled during development.

## Verification

- [X] Manual (required)
- [ ] Automated

## Packaging changes reviewed?

- [ ] Yes
- [ ] No
- [X] N/A

----

## When servicing release/2.1

- [ ] Make necessary changes in eng/PatchConfig.props
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
Projects
None yet
2 participants