【问题标题】:asp.net bundler not working with .axd fileasp.net bundler 不适用于 .axd 文件
【发布时间】:2013-02-11 19:02:44
【问题描述】:

我目前正在使用 web 优化捆绑器,它是 .net 框架的一部分,它将我的 javascript 和 css 捆绑到一个文件中。这很好用。

不过,我遇到了一个问题。见以下代码:

 BundleTable.Bundles.Add(new ScriptBundle("mybundle").Include( 
                "~/Scripts/globalize.js", 
                "~/Scripts/jquery.validate.js", 
                string.Format("~/resources.axd")));

这捆绑了文件中的所有 javascript,但我还想捆绑我的 .axd http 处理程序的输出。这将返回 javascript。但是,javascript 永远不会包含在包中。如果我在浏览器中运行处理程序,没问题,会返回 javascript。

我想知道捆绑程序可能无法识别 .axd 扩展名,因此不会尝试请求该文件。如果是这种情况和解决方法有什么想法吗?

【问题讨论】:

标签: asp.net asp.net-mvc asp.net-mvc-4 httphandler bundling-and-minification


【解决方案1】:

正确,您只能将文件包含到包中,它不会为您向 axd 发出请求。您可以做的是手动点击 axd,然后将文件保存到磁盘并将其包含到您的包中。

【讨论】:

  • 是否可以在创建bundle时直接加载文件并添加内容?
  • 当然,您可以在 PreAppStart 期间设置捆绑包时执行此操作
  • 很酷 - 如何将内容直接添加到捆绑器?有什么例子吗?
  • 为什么不能只将文件包含在包中?您目前无法将内容直接加载到捆绑包中,我认为我误解了您的问题。
  • 内容来自我要在客户端使用的 javascript 变量中填充的资源文件。所以我想将 resx 资源文件的内容填充到这个包中,这是特定于文化的。
【解决方案2】:

我刚刚为 resx 编写了一个脚本包 - 你可以在这里找到源代码

https://github.com/MrAntix/sandbox-resx-script-bundling

在 BundleConfig 中,添加你的包 ...

bundles.Add(
  new ResxScriptBundle("~/bundles/local")
      .Include<JsResources>("app")
  );

它为每个资源创建一个这样的模型......

window.resources=window.resources||{};
window.resources.app = {
  "HelloWorld": "Hello World, from JSResources.resx"
};

你可以像这样在你的 JS 中使用它...

$("h1").append(window.resources.app.HelloWorld);

...例如

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多