我在使用 DotNet.HighChart Lib for Asp.net MVC 时遇到了类似的问题。当我在 VS2012 和 IIS Express 上工作时,一切都很好,但是当我将它部署到我的 PC 上的本地 IIS 或运行 IIS 7 的外部服务器上时,没有显示任何图表(只是一个空白页),我检查了源代码,似乎生成了脚本,但不包括两个 js 文件 [Highcharts,Exporting] 之一,这是 Bundle 的问题,它在服务器上有不同的行为,我不明白,我所做的一切都是为了解决我的问题忽略了Bundle并直接包含js文件。
我转换了:
@Scripts.Render("~/bundles/highcharts")
至
@Scripts.Render("~/Scripts/highcharts/highcharts.exporting-1.0.0.js")
@Scripts.Render("~/Scripts/highcharts/highcharts.min-1.0.0.js")
它奏效了。
只是为了获得更多信息,我的 Bundle 定义如下:
bundles.Add(new ScriptBundle("~/bundles/highcharts").Include(
"~/Scripts/highcharts/highcharts.exporting-1.0.0.js",
"~/Scripts/highcharts/highcharts.min-1.0.0.js"
));
编辑:我想我知道发生了什么事。Highcharts.js 不是独立的,我的意思是它使用物理上位于它旁边的其他 js 文件。Bundle 在开发时间和部署时间上有不同的 url。为了便于开发,它生成了 PHYSICAL urls 和 js 文件的物理内部链接然后工作。但是在服务器上,所有捆绑包都映射到与其物理位置无关的虚拟路径,因此会导致这些文件中的相对物理路径在服务器上被错误寻址,并且您会收到 404 异常。
希望它会有所帮助