块文件无法使用 jsPDF 在 Netsuite 托管的 Angular 17 应用程序上加载 404 状态

问题描述 投票:0回答:1

我使用 jsPDF 库创建了一个 Angular 17 应用程序,该库将托管在 Netsuite 中。使用 ngserve 时应用程序运行良好。但是当我上传到托管它的 Netsuite 并从那里运行时,我收到错误 “chunk-RS6LHQUM.js:1 加载资源失败:服务器响应状态为 404 ()” “chunk-G5ZMUUOF.js:1 无法加载资源:服务器响应状态为 404 ()” “chunk-ELAEEMD4.js:1 加载资源失败:服务器响应状态为 404 ()”

这是index.html 文件中引用块文件位置的代码:

这些似乎加载得很好,我在这里知道错误。 运行此代码时会发生“const doc = new jspdf('p', 'in', 'letter');” 看起来文件是在预加载查找中加载的,但是当需要访问它们时却找不到它们。任何对此的见解将不胜感激。

我已经隔离了创建新的 jspdf 对象时发生的错误。

angular netsuite jspdf
1个回答
0
投票

如果您尝试对扩展 Netsuite 的应用程序使用分块文件,那么问题很可能是,当您将文件上传到 Netsuite 文件柜时,其可寻址 url 将与其文件名不匹配。例如。以 logo.jpg 上传的文件可能有 url https://123456.app.netsuite.com/core/media/media.nl?id=99999999&c=123456&h=fZSzufXp-1fegXU4k1oUIWPpj3BurMcCO8QgsNd6W5836dL-

所以你会丢失像 appname.chunk1.js 这样的名字

  1. 不要分块。如果有人运行 Netsuite,他们应该已经拥有良好的带宽。
  2. 不要使用 Angular(也不要分块)。我有一些非常复杂的 React 应用程序在 Suitelet 中运行。我刚刚看了其中一个,未分块的应用程序大小为 285k。以今天的标准来看,这并不是一个大文件。使用 preact 或 Vue 可以使您的应用程序文件变得更小。
  3. 编写动态导入解析器。 Webpack Require From 是一个有趣的选项。我还没有使用过它,但它的功能正是您将块名称转回 Netsuite 文件 URL 所需要的。在 NetSuite UI 中,您可以将该库与执行文件查找的 Suitelet 结合使用。 React JS 和 Suitelet 中的函数 getFileURL 将是一个起点。
© www.soinside.com 2019 - 2024. All rights reserved.