【问题标题】:Dart webdev server and PHP filesDart webdev 服务器和 PHP 文件
【发布时间】:2019-08-09 08:31:08
【问题描述】:

我正在使用 Google Dart SDK 2.2 版开发一个 Web 项目,并使用 PhpStorm 作为我的 IDE。该项目的目的是从一个index.php 文件开始,该文件执行一些初步的服务器端工作,最后是对include('project1.html'); 的调用,它将html 文件下载到客户端并在最后包含<script defer src="project1.dart.js"></script>。我正在尝试找出最佳的开发设置。我在开发机器上安装了 php 并包含在路径中。

我发现从终端调用webdev serve 将项目服务于http://localhost:8080,但显示Could not find web/index.html 而不是project1.html 的预期渲染。所以我猜webdev服务器不处理.php文件?

另一种方法是右键单击index.php 文件并选择run in browser。这将打开一个显示 index.php 文件文本的 Chrome 页面。所以我猜想再次没有处理php。

另一种方法是使用默认设置设置 javascript 调试配置并单击绿色调试图标。这确实会产生正确的project1.index 输出,并且index.php 已被正确处理。但是,我无法让断点工作,Chrome Dev Console 中的错误是指build 目录中的project1.dart.js 文件。

我尝试的另一种方法是使用 Xampp 服务器来提供文件。在这种情况下,我有许多项目,并在xampp/htdocs 下设置每个项目,即xampp/htdcos/project1 等。在 PhpStorm 中,我设置了一个本地或安装的服务器:

  • 文件夹C:\xampp\htdocs\project1,
  • 网络服务器根地址http://localhost/project1,
  • 指向我项目的web子目录的本地路径,并且
  • 部署和网络路径都设置为\

PhpStorm 似乎工作正常,但断点再次不起作用,调试错误消息没有引用 dart 文件。

非常欢迎任何帮助。我正在尝试使用此设置(即从 index.php 文件开始)做的事情是否可行?

** 编辑 **

根据以下建议,我在 httpd-vhosts.conf 文件中添加了以下内容:

<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/project1" ServerName localhost ProxyPreserveHost On ProxyRequests Off ProxyPassMatch ^/(.*\.js)$ http://localhost:8080/$1 </VirtualHost>

然后我将我的 .php 文件和 MySql 保存在 Xampp 上,而 javascript 由 webdev serve 提供服务。

但是,我有同样的问题,即 PhpStorm 或 Chrome 开发工具源 Dart 文件中的断点不会触发,并且 Chrome 开发工具控制台引用 javascript 文件而不是 Dart 源。

【问题讨论】:

    标签: dart phpstorm dart-html


    【解决方案1】:

    您需要在 apache/php 服务器上运行反向代理并将 js 请求重定向到 webdev 服务器,然后您只需使用 apache/php 服务器和任何浏览器运行您的应用程序测试。当你去部署时,使用 dart2js 生成 js 文件并复制整个构建目录,它可以被普通的 apache/php 服务器读取(即没有反向代理)。

    【讨论】:

    • 谢谢!我对此不是很熟悉,但正在到达那里。我想我有非 PHP 文件的反向代理工作,Chrome DevTools 也正确报告了引用 Dart 源代码的错误。我仍然在努力让两台服务器很好地协同工作,但应该做更多的工作。
    • 我已经编辑了上面的问题以包含我的最终结果。
    • 我使用了:“ProxyPassMatch ^/(.*\.js)$ localhost:8080/$1”,它将 javascript 请求发送到 webdev 服务器,但保留其他请求。 Xampp 服务器端 PHP 和 MySql 处理工作正常,并且 webdev 正确地提供了 javascript 文件,即我的 project1.dart 文件作为 project1.ddc.js、project1.dart.js 和 project1.dart.bootstrap.js 提供我的 Chrome 开发工具窗口上的源选项卡。但是,我的 PhpStorm dart 源代码或 Chrome 开发工具 Dart 源文件中的断点不起作用,并且控制台源代码引用指向 javascript 文件。
    • 如果它们未启用,请确保您已启用源代码映射。我相信地图不会以 .js 结尾,因此您可能需要另一个代理规则来将这些请求传递给 webdev 服务器。
    猜你喜欢
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2014-08-06
    • 2021-08-01
    • 2019-01-20
    • 2011-09-19
    相关资源
    最近更新 更多