0

我在使用 Highcharts 的导出功能时遇到问题。我在 Visual Studio 下开发,使用 ASP.NET。我正在使用 Highcharts V3,引用以下文件:

  • highcharts.js
  • highcharts-more.js
  • 导出.js

当我测试从 Visual Studio(本地服务器)启动它的 Web 项目时,一切正常。

然后我将我的网站上传到服务器(Windows 7 服务器上的 IIS 7.5)。当我从那里的 URL 打开网站时,导出上下文按钮根本不会显示在图表的右上角。没有错误,只是没有在图表画布中定义按钮。

有人可以帮我吗?

谢谢。

4

1 回答 1

0

我在使用 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 异常。

希望它会有所帮助

于 2013-12-24T16:40:27.003 回答