【发布时间】:2015-02-20 16:28:24
【问题描述】:
我的应用程序是 ASP.NET MVC v4,我正在使用 Web 优化功能(脚本和样式的捆绑和缩小)。
现在,我的理解是(如有错误请指正),优化框架会在编译时查看包含的文件并进行配置。它将根据内容创建一个版本号(v=something)。每次内容变化时,都会重新创建版本哈希,客户端会得到更新的文件。
现在,有没有办法完成以下工作
[1] 在我的服务器中更新一个 js 文件中的某些内容,并将更新后的内容提供给客户端,而无需重新构建和重新启动应用程序(我在这里没有更改捆绑配置,只是更新一个脚本)?
[2] 更新脚本配置本身(例如,将新脚本添加到包中),并在不重新编译和重新启动应用程序的情况下将其提供给客户端?或者,至少无需重新编译? (我知道,一般我们在cs文件里面定义bundle,但是想知道有没有出路!)
[3] 有没有办法使用我自己的版本号(比如来自配置文件,v=myCustomScriptVersion)而不是自动生成的版本哈希?
【问题讨论】:
-
在编译过程中没有配置包,它们是在 Application_Start 运行时配置的。
-
@danludwig,捆绑内容确实是在编译时定义的。
-
@haim770 它们是在编译时定义的,但它们是在运行时配置的。 Appplication_Start 将调用 BundleConfig.RegisterBundles,它将捆绑包添加到集合中。此代码在运行时运行。
-
也许我有点困惑。无论如何,我已经更新了我的问题,我的目的是在不重新编译和重新启动应用程序的情况下获得更新的脚本。
-
@ArghyaC 是的,这是可能的。您必须有一些东西可以清除 GlobalFilters.Filters 并重新运行您的捆绑注册代码。
标签: asp.net-mvc asp.net-mvc-4 bundling-and-minification web-optimization asp.net-bundling