NET Core 3.1 JS 的路径引用
jQuery:
<script src="~/_content/Xxx.BI.Razor/js/bs-blue/js/jquery.min.js"></script>
NET Core 2.2 请参照 http://ask.sov5.cn/q/6cTLmujZcG
您应该采取以下4个步骤来嵌入您的资产并为其提供服务。
-
编辑Razor类库的csproj文件并添加以下行。
<PropertyGroup> .... <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest> .... </PropertyGroup> <ItemGroup> .... <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.2" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.1" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="2.1.1" /> <PackageReference Include="Microsoft.NET.Sdk.Razor" Version="$(MicrosoftNETSdkRazorPackageVersion)" PrivateAssets="All" /> ..... </ItemGroup> <ItemGroup> <EmbeddedResource Include="wwwroot\**\*" /> <Content Update="**\*.cshtml" Pack="false" /> </ItemGroup>
-
在Razor类库中,创建以下类来服务和路由资产。(假设您的资产位于wwwroot文件夹中)
public class UIConfigureOptions : IPostConfigureOptions<StaticFileOptions> { public UIConfigureOptions(IHostingEnvironment environment) { Environment = environment; } public IHostingEnvironment Environment { get; } public void PostConfigure(string name, StaticFileOptions options) { name = name ?? throw new ArgumentNullException(nameof(name)); options = options ?? throw new ArgumentNullException(nameof(options)); // Basic initialization in case the options weren't initialized by any other component options.ContentTypeProvider = options.ContentTypeProvider ?? new FileExtensionContentTypeProvider(); if (options.FileProvider == null && Environment.WebRootFileProvider == null) { throw new InvalidOperationException("Missing FileProvider."); } options.FileProvider = options.FileProvider ?? Environment.WebRootFileProvider; var basePath = "wwwroot"; var filesProvider = new ManifestEmbeddedFileProvider(GetType().Assembly, basePath); options.FileProvider = new CompositeFileProvider(options.FileProvider, filesProvider); } }
-
使依赖的web应用程序使用Razor类库路由器。在 配置服务 方法 启动 类,添加以下行。
services.ConfigureOptions(typeof(UIConfigureOptions));
-
所以,现在可以添加对文件的引用。(假设它位于wwwroot/js/app.bundle.js)。
<script src="~/js/app.bundle.js" asp-append-version="true"></script>