我试图复制这个example。
在我的BundleConfig.cs中:
<!-- language: c# -->
public static string KendoVersion = "2015.1.429";
public static string KendoTheme = "bootstrap";
bundles.Add(new StyleBundle("~/Content/kendo/kendoui").Include(
String.Format("~/Content/kendo/{0}/kendo.common.min.css",KendoVersion),
String.Format("~/Content/kendo/{0}/kendo.common-{1}.core.min.css", KendoVersion, KendoTheme),
String.Format("~/Content/kendo/{0}/kendo.common-{1}.min.css", KendoVersion,KendoTheme),
String.Format("~/Content/kendo/{0}/kendo.{1}.min.css", KendoVersion, KendoTheme)
));
我有这个简单的观点:
<div class="pdf">
Test <strong>Test2</strong>
</div>
<button class="export-pdf k-button" onclick="getPDF('.pdf')">Esporta in PDF</button>
<script type="text/javascript">
function getPDF(selector) {
kendo.drawing.drawDOM($(selector)).then(function (group) {
kendo.drawing.pdf.saveAs(group, "Richiesta.pdf");
});
}
</script>
如果我在本地环境中运行我的应用程序,我没有任何问题。但是,如果我发布到IIS,在远程,当我点击“PFD”按钮时,我有这个JavaScript错误:
无法从myWebSite.it/TestPdf/Content/kendo/fonts/DejaVu/DejaVuSans.ttf加载字体
文件在服务器中正确显示,正确的路径是: “〜/内容/剑术/的 2015.1.429 /fonts/DejaVu/DejaVuSans.ttf”
如果我复制文件夹“〜/ content / kendo”中的文件夹字体就可以了。
问题
为什么应用程序有这种行为?
我在某处错过了某些配置吗?
答案 0 :(得分:2)
问题是字体(和图像)是相对于css文件的,所以当它捆绑它时,它正在寻找错误路径中的字体,所以它试图在〜/ Content / kendo / fonts中查找字体,但它们不是'他们在〜/ Content / kendo / 2015.1.429 / fonts
中更改您的包以包含版本,以便它可以在正确的路径中找到fonts文件夹,例如
string bundleName = string.Format("~/Content/kendo/{0}/kendoui", KendoVersion);
bundles.Add(
new StyleBundle(bundleName).Include(
String.Format("~/Content/kendo/{0}/kendo.common.min.css", KendoVersion),
String.Format("~/Content/kendo/{0}/kendo.common-{1}.core.min.css", KendoVersion, KendoTheme),
String.Format("~/Content/kendo/{0}/kendo.common-{1}.min.css", KendoVersion, KendoTheme),
String.Format("~/Content/kendo/{0}/kendo.{1}.min.css", KendoVersion, KendoTheme)));
}
它在调试时有效,因为它可能没有优化它们,因此正在使用正确的路径
这有更多信息http://docs.telerik.com/kendo-ui/aspnet-mvc/fundamentals#css-bundling