1

我目前正在使用作为.net框架的一部分的Web优化捆绑程序,它将我的javascript和css捆绑到一个文件中。这很好地工作。asp.net bundler不能使用.axd文件

虽然我已经遇到了问题。看到下面的代码:

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

这束从文件的所有JavaScript,但我也想捆绑我的.axd HTTP处理程序的输出。这返回javascript。然而,javascript永远不会包含在该包中。如果我在浏览器中运行处理程序,则不会返回问题。

我在想,也许bundler不能识别.axd扩展名,因此不会尝试请求该文件。任何想法,如果是这样的情况和工作?

+0

默认捆绑似乎对待名与beginningg“〜/”作为文件,并尝试从磁盘读取它们。 – Joe 2013-02-11 19:20:06

+0

好的。什么是解决方法? – amateur 2013-02-11 19:23:02

+1

http://stackoverflow.com/questions/1433512/asp-net-web-application-webresource-axd-and-scriptresource-axd-files-loading – Joe 2013-02-11 20:15:49

回答

0

正确,您只能将文件包含到捆绑包中,它不会向您发出对axd的请求。你可以做的是手动命中axd,并将文件保存到磁盘并将其包含到你的包中。

+0

是否可以在创建包时直接加载文件并添加内容? – amateur 2013-02-15 08:44:49

+0

当然,您可以在PreAppStart期间设置套件 – 2013-02-15 19:10:07

+0

很酷 - 以及如何直接向捆绑器添加内容?任何例子? – amateur 2013-02-15 22:47:43

0

我只是写了一个脚本包的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" 
}; 

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

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

...例如