使用Highcharts的导出功能时遇到问题。 我使用ASP.NET在Visual Studio下开发。 我正在使用Highcharts V3,引用以下文件:
当我测试从Visual Studio(本地服务器)启动它的Web项目时,一切都运行良好。
然后我将我的网站上传到服务器(Windows 7服务器上的IIS 7.5)。 当我从那里的URL打开网站时,导出上下文按钮根本不会显示在图表的右上角。没有错误,只是在图表的画布中没有定义按钮。
有人可以帮助我吗?
谢谢你。
答案 0 :(得分:0)
我使用DotNet.HighChart Lib为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文件。捆绑包在开发时间和部署时间上有不同的URL。为了便于开发,它生成了物理网址和js文件的物理内部链接。但是在服务器上,所有捆绑包都映射到与其物理位置无关的虚拟路径,因此它会导致这些文件中的相对物理路径在服务器上被错误地处理,并且您将获得404异常。
希望它有所帮助