Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何从web应用程序的lib文件夹导入库?_Dart_Dart Pub - Fatal编程技术网

Dart 如何从web应用程序的lib文件夹导入库?

Dart 如何从web应用程序的lib文件夹导入库?,dart,dart-pub,Dart,Dart Pub,我的文件夹结构如下所示: lib\ my_library.dart web\ index.html main.dart pubspec.yaml 在main.dart中,我正在导入my_library.dart(顶部有library my_library),方法如下: import '../lib/my_library.dart'; 这个很好用。然而,拥有这样一条相对的路径感觉有点脆弱。我在文章中读到,我可能可以使用import'package:blah';它说: 当

我的文件夹结构如下所示:

lib\
    my_library.dart
web\
    index.html
    main.dart
pubspec.yaml
main.dart
中,我正在导入
my_library.dart
(顶部有
library my_library
),方法如下:

import '../lib/my_library.dart';
这个很好用。然而,拥有这样一条相对的路径感觉有点脆弱。我在文章中读到,我可能可以使用
import'package:blah'
;它说:

当您从自己的包中使用库时,即使是src中的代码,您仍然可以(而且应该)使用“package:”来导入它们

因此,我尝试将代码更改为:

import 'package:my_library.dart';
然而,在Chrome开发编辑器中,我得到:

目标或URI不存在:“包:grid\u data.dart”

在Dartium,我得到:

获取http://127.0.0.1:51792/MyProject/web/packages/my_library.dart 404(未找到)


从项目中的其他dart文件导入我的
lib
文件夹的正确方法是什么?

您缺少包名

import'package:my_project/my_library.dart';
导入语句中的
package:
部分引用了
myu项目
包中的packages文件夹(包含
pubspec.yaml
的文件夹)。导入语句的其余部分是要导入的文件的路径。
您可以在DartEditor或文件管理器中浏览此软件包文件夹中的文件夹和文件,以查看文件的组织方式。

此文件夹还包含一个名为
my_project
的符号链接,它指向您的
my_project/lib
文件夹。

Doh!现在我在包中查看时似乎有点明显:)您应该知道,这在HTML中的工作方式不同。没有
包:
。您需要导航到软件包顶部文件夹,然后向下浏览
软件包
文件夹。从
web/index.html
这将是
。/packages/my_project/my_library.css
(不要将
package:
package*s*/
混合使用;这很有意义(因为一个是浏览器解释的路径,另一个是Dart导入的东西!)Dart在构建时解析(发布服务/发布构建)HTML由浏览器解析。