Use versioned URLs for static assets
Updated `EnvelopeViewer.razor` to use versioned URLs for CSS and JS files via the new `AppVersionService`, enabling cache busting. Introduced `AppVersionService` to generate versioned URLs based on the application version retrieved from assembly metadata. Registered `AppVersionService` as a singleton in `Program.cs` for dependency injection.
This commit is contained in:
@@ -14,14 +14,15 @@
|
||||
@inject SignatureService SignatureService
|
||||
@inject EnvelopeGenerator.ReceiverUI.Services.AuthService AuthService
|
||||
@inject EnvelopeGenerator.ReceiverUI.Services.EnvelopeReceiverService EnvelopeReceiverService
|
||||
@inject AppVersionService AppVersion
|
||||
@implements IAsyncDisposable
|
||||
|
||||
<link href="_content/DevExpress.Blazor.Themes/blazing-berry.bs5.min.css" rel="stylesheet" />
|
||||
<link href="css/envelope-viewer.css" rel="stylesheet" />
|
||||
<link href="@AppVersion.GetVersionedUrl("css/envelope-viewer.css")" rel="stylesheet" />
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf_viewer.min.css" rel="stylesheet" />
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.min.js"></script>
|
||||
<script src="js/pdf-viewer.js"></script>
|
||||
<script src="js/receiver-signature.js"></script>
|
||||
<script src="@AppVersion.GetVersionedUrl("js/pdf-viewer.js")"></script>
|
||||
<script src="@AppVersion.GetVersionedUrl("js/receiver-signature.js")"></script>
|
||||
|
||||
<div class="envelope-viewer-layout">
|
||||
<div class="envelope-action-bar">
|
||||
|
||||
@@ -21,6 +21,7 @@ builder.Services.AddScoped<EnvelopeGenerator.ReceiverUI.Services.AuthService>();
|
||||
builder.Services.AddScoped<EnvelopeGenerator.ReceiverUI.Services.AnnotationService>();
|
||||
builder.Services.AddScoped<EnvelopeGenerator.ReceiverUI.Services.EnvelopeReceiverService>();
|
||||
builder.Services.AddScoped<EnvelopeGenerator.ReceiverUI.Services.SignatureService>();
|
||||
builder.Services.AddSingleton<EnvelopeGenerator.ReceiverUI.Services.AppVersionService>();
|
||||
|
||||
builder.Services.AddDevExpressWebAssemblyBlazorReportViewer();
|
||||
builder.Services.AddDevExpressWebAssemblyBlazorPdfViewer();
|
||||
|
||||
26
EnvelopeGenerator.ReceiverUI/Services/AppVersionService.cs
Normal file
26
EnvelopeGenerator.ReceiverUI/Services/AppVersionService.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
namespace EnvelopeGenerator.ReceiverUI.Services;
|
||||
|
||||
/// <summary>
|
||||
/// Provides application version for cache busting static assets.
|
||||
/// Version is automatically incremented on each build via AssemblyVersion.
|
||||
/// </summary>
|
||||
public class AppVersionService
|
||||
{
|
||||
/// <summary>
|
||||
/// Current application version (e.g., "1.0.0.0")
|
||||
/// </summary>
|
||||
public string Version { get; }
|
||||
|
||||
public AppVersionService()
|
||||
{
|
||||
// Get version from assembly metadata
|
||||
Version = typeof(AppVersionService).Assembly.GetName().Version?.ToString() ?? "1.0.0.0";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generates versioned URL for static assets (cache busting)
|
||||
/// </summary>
|
||||
/// <param name="path">Asset path (e.g., "css/envelope-viewer.css")</param>
|
||||
/// <returns>Versioned URL (e.g., "css/envelope-viewer.css?v=1.0.0.0")</returns>
|
||||
public string GetVersionedUrl(string path) => $"{path}?v={Version}";
|
||||
}
|
||||
Reference in New Issue
Block a user