【问题标题】:Dart program refusing to execute because of MIME type checking?由于 MIME 类型检查,Dart 程序拒绝执行?
【发布时间】:2023-03-09 09:17:02
【问题描述】:

我一直在尝试将我们的 Client.dart 网络程序安装到我们的服务器上,它是从 index.html 文件中引用的,并且在本地一切正常。

我发现了很多问题,但这个问题让我很困惑。注意:客户端应用程序正在使用 Polymer,其中包含一些 HTTP 代码。它还使用 Websockets。

我现在得到的确切消息是:

拒绝执行来自 'http://swarmshepherd.com:9494/client.dart' 的脚本,因为它的 MIME 类型('application/octet-stream')不可执行,并且启用了严格的 MIME 类型检查。

有一个“标头”(HTTP):“X-Content-Type-Options=nosniff” 这似乎与问题有关。对我来说没有任何意义 还没用。

从长远来看,我们必须能够在 Chrome 中运行,但此消息发生在 达提姆。

该消息在 DeveloperTools/js 监视器中找到 - 这是我收到的第一条也是唯一一条消息。

(我认为可能有一个 Chomium/Dartium 选项来关闭严格检查,但任何地方都没有显示,现在我已经尝试了 HTTP 代码的标题部分中我能想到的所有内容(这是最不确定的和令人沮丧,因为我无法从代码中知道如何使用它!)

提前感谢您提供任何线索!

_乔治

【问题讨论】:

  • 你使用什么服务器来提供你的 Dart 脚本?您究竟在服务器上部署了什么? pub build 只创建可部署的 JavaScript,还没有可部署的 Dart 结果。也许先尝试部署pub build的结果会更容易。
  • 看起来您必须将 .dart 文件的 MimeType 添加到您的网络服务器。如果您真的想要服务器 .dart 文件而不是像 Günter 指出的那样使用 pub 构建的 .js 文件。
  • Guenter,我已经开发了一个 Dart('入门程序')并且只在 Dartium 的 Dart 编辑器中运行它。是的,我确实运行了 [pub build] 并且它成功完成了,我认为我需要的所有文件都在“web”文件夹中,就像标准程序一样。所有 HTML 文件和更多文件都已安装(甚至一些库我已经几个月没有使用了,并且它们的引用为零)。另外,我想我会从使用 Sinatra 开始并提供 index.html 文件,因为这是我熟悉的“宝石”……使用 Dart 的快速尝试根本不起作用。非常感谢,再次!
  • 我现在已经测试了 Sinatra 将在配置时使用 js 提供一个 html 文件,并且确实如此(非常基本)。还尝试在我的 Dart 程序中屏蔽所有 HTTP 代码,重新运行 pub build 等等,但这也不起作用。
  • @georgekoller,pub build 的结果放在build/ 而不是`web/。见dartlang.org/tools/pub/cmd/pub-build.html

标签: dart mime-types dartium


【解决方案1】:

如果您使用的是 Sinatra(我猜,基于 cmets),您可以register custom mime types

configure do
  mime_type :dart, 'application/dart'
end

如果您使用的是 IIS,则需要将其添加到 IIS configurationMime Types 部分。

其他网络服务器应该有一些类似的配置选项。

【讨论】:

    猜你喜欢
    • 2015-12-23
    • 2014-08-23
    • 2017-03-27
    • 2015-06-30
    • 2021-05-30
    • 2017-10-02
    • 2018-07-15
    • 2020-08-27
    相关资源
    最近更新 更多