gpt4 book ai didi

javascript - 我的 dojo 仅在通过 HTTP 访问时有效

转载 作者:行者123 更新时间:2023-12-02 20:27:58 25 4
gpt4 key购买 nike

我下载了dojo工具包并打开dijit/themes/themeTester.html。道场不能工作。我必须将该工具包复制到我的 Web 服务器的 webapp 目录中。然后我通过 HTTP 访问相同的 html。道场运转正常。

在开发过程中,我是否必须始终将页面部署到网络服务器进行测试?

谢谢。

最佳答案

此行为不是 Dojo 特有的。出于安全原因,某些浏览器(例如 Firefox)禁止直接从文件系统加载的网页加载其主目录之外的资源。

示例:您的网页位于 /home/bob/page.html 中。它可以包含以下资源:

  • bob.js(有效路径:/home/bob/bob.js)
  • ./sam.js (/home/bob/sam.js)
  • abc/spot.js (/home/bob/abc/spot.js)
  • 等等

它无法加载以下资源(即使它们存在):

  • ../bob.js (/home/bob.js)
  • /home/tom/script.js
  • ../tom/script.js (/home/tom/script.js)

理论上,您可以进入 Firefox 内部并关闭此“功能”,但您可能会遇到其他问题:

  • 在某些情况下,XHR 在文件系统中的工作方式很有趣。 Web 服务器随文件发送 MIME header ,而文件系统不提供此服务,XHR 被迫猜测。有时它会猜错。
  • 虽然 Dojo 不需要任何服务器端代码,但它的测试可能会使用 PHP 来模拟服务器端数据存储和其他东西。当从文件系统运行时,这些 PHP 文件通常按原样提供,而不是被执行。

除此之外,您应该能够直接从文件系统运行任何 Web 应用程序。只需确保整个应用程序位于一个文件夹中,所有 HTML 页面都位于顶部文件夹中(或子文件夹中,但不要使用它们“上方”的任何内容),避免绝对路径和“向上”符号 ( ..)在将您带出主文件夹(即使是暂时的)的路径中,并始终测试您的 XHR 响应。

关于javascript - 我的 dojo 仅在通过 HTTP 访问时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4552062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com