我有一个 ASP.NET Core 项目,wwwroot目录和bower_components目录中都有静态文件。
我可以通过将其添加到我的Startup.cs班级来为这些文件提供服务:
StaticFileOptions rootFileOptions = new StaticFileOptions();
rootFileOptions.OnPrepareResponse = staticFilesResponseHandler;
StaticFileOptions bowerFileOptions = new StaticFileOptions();
bowerFileOptions.OnPrepareResponse = staticFilesResponseHandler;
string bowerDirectory = Path.Combine(Directory.GetCurrentDirectory(), "bower_components");
PhysicalFileProvider bowerPhysicalFileProvider = new PhysicalFileProvider(bowerDirectory);
bowerFileOptions.FileProvider = bowerPhysicalFileProvider;
bowerFileOptions.RequestPath = new PathString("/bower");
app.UseStaticFiles(rootFileOptions);
app.UseStaticFiles(bowerFileOptions);
Run Code Online (Sandbox Code Playgroud)
然后从我的观点中引用它们如下:
<script type="text/javascript" src="/bower/jquery/dist/jquery.min.js" asp-append-version="true"></script>
<script type="text/javascript" src="/Libs/jQuery-UI/jquery-ui.min.js" asp-append-version="true"></script>
Run Code Online (Sandbox Code Playgroud)
虽然asp-append-version看起来就好工作了位于下资源wwwroot,似乎对资源的外部完全忽略wwwroot。尽管如此,所有资源都得到了适当的服务;没有 404 或任何东西。上述代码的结果 HTML 如下:
<script type="text/javascript" src="/bower/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="/Libs/jQuery-UI/jquery-ui.min.js?v=YZKMNaPD9FY0wb12QiluqhIOWFhZXnjgiRJoxErwvwI"></script>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我在 c# .net core 2.2 webapp 上,我在 cshtml 中使用 [asp-append-version="true"] 来处理 js 和 css 来进行缓存突发。但问题是我正在添加一个脚本,例如
<script src="~/js/Video/Video.js" type="module" asp-append-version="true"></script>
Run Code Online (Sandbox Code Playgroud)
video.js 文件具有以下代码,基本上它有一些导入
import { TestCongestionHeaderInfo } from '../TestCongestionHeaderInfo.js';
import { ResponseHandler } from '../Common/ResponseHandler.js';
...
Run Code Online (Sandbox Code Playgroud)
我确实获得了 video.js 的版本控制,但没有获得导入的模块文件的版本控制。以下是 chrome 网络检查窗口的屏幕截图
我怎样才能实现导入文件的版本控制?