Dart 如何在将Flatter应用程序迁移到Flatter web时显示图像资产?

Dart 如何在将Flatter应用程序迁移到Flatter web时显示图像资产?,dart,flutter,flutter-web,Dart,Flutter,Flutter Web,尝试将神龛应用程序迁移到Flatter web,但迁移时无法在localhost显示图像(放置在资产文件夹中的神龛徽标),包含图像的asserts文件夹将按照中的说明放置在web文件夹中,并用正确的路径更新了dart代码,但它仍然不显示图像 请提供解决方案,谢谢 login.dart import 'package:flutter_web/material.dart'; class LoginPage extends StatefulWidget { @override

尝试将神龛应用程序迁移到Flatter web,但迁移时无法在localhost显示图像(放置在资产文件夹中的神龛徽标),包含图像的asserts文件夹将按照中的说明放置在web文件夹中,并用正确的路径更新了dart代码,但它仍然不显示图像

请提供解决方案,谢谢

login.dart

import 'package:flutter_web/material.dart';

    class LoginPage extends StatefulWidget {
      @override
      _LoginPageState createState() => _LoginPageState();
    }

    class _LoginPageState extends State<LoginPage> {
      // TODO: Add text editing controllers (101)
      final _usernameController = TextEditingController();
      final _passwordController = TextEditingController();
      // TODO: Add text editing controllers (101)
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: SafeArea(
            child: ListView(
              padding: EdgeInsets.symmetric(horizontal: 24.0),
              children: <Widget>[
                SizedBox(height: 80.0),
                Column(
                  children: <Widget>[
                    Image.asset('web/assets/diamond.png'),
                    SizedBox(height: 16.0),
                    Text('SHRINE'),
                  ],
                ),
                SizedBox(height: 120.0),
                // TODO: Wrap Username with AccentColorOverride (103)
                // TODO: Remove filled: true values (103)
                // TODO: Wrap Password with AccentColorOverride (103)
                // TODO: Add TextField widgets (101)
                // [Name]
                TextField(
                  controller: _usernameController,
                  decoration: InputDecoration(
                      filled: true,
                      border: OutlineInputBorder(),
                      labelText: 'Username'),
                ),
                SizedBox(
                  height: 12.0,
                ),
                // [Password]
                TextField(
                  controller: _passwordController,
                  decoration: InputDecoration(
                    filled: true,
                    border: OutlineInputBorder(),
                    labelText: 'Password',
                  ),
                  obscureText: true,
                ),
                // TODO: Add button bar (101)
                ButtonBar(
                  children: <Widget>[
                    // Todo Add buttons (101)
                    RaisedButton(
                      child: Text('Cancel'),
                        onPressed: () {
                          // TODO: Clear the text fields (101)
                          _usernameController.clear();
                          _passwordController.clear();
                        }
                    ),
                    // TODO: Add an elevation to NEXT (103)
                    // TODO: Add a beveled rectangular border to NEXT (103)
                    RaisedButton(
                      child: Text('NEXT'),
                      onPressed: () {
                        // TODO: Show the next page (101)
                        Navigator.pop(context);
                      },
                    ),
                  ],
                ),
              ],
            ),
          ),
        );[enter image description here][1]
      }
    }

    // TODO: Add AccentColorOverride (103)
import'包装:flatter_web/material.dart';
类LoginPage扩展StatefulWidget{
@凌驾
_LoginPagentate createState()=>_LoginPagentate();
}
类_loginpagentate扩展状态{
//TODO:添加文本编辑控制器(101)
final _usernameController=TextEditingController();
final _passwordController=TextEditingController();
//TODO:添加文本编辑控制器(101)
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:安全区(
子:ListView(
填充:边缘组。对称(水平:24.0),
儿童:[
尺寸箱(高度:80.0),
纵队(
儿童:[
Image.asset('web/assets/diamond.png'),
尺寸箱(高度:16.0),
文本(“神龛”),
],
),
尺寸箱(高度:120.0),
//TODO:使用AccentColorOverride包装用户名(103)
//TODO:删除填充值:真值(103)
//TODO:使用AccentColorOverride包装密码(103)
//TODO:添加文本字段小部件(101)
//[姓名]
文本字段(
控制器:\ u usernameController,
装饰:输入装饰(
是的,
边框:OutlineInputBorder(),
labelText:“用户名”),
),
大小盒子(
身高:12.0,
),
//[密码]
文本字段(
控制器:_passwordController,
装饰:输入装饰(
是的,
边框:OutlineInputBorder(),
labelText:“密码”,
),
蒙昧文字:对,
),
//TODO:添加按钮栏(101)
钮扣杆(
儿童:[
//待办事项添加按钮(101)
升起的按钮(
子项:文本('Cancel'),
已按下:(){
//TODO:清除文本字段(101)
_usernameController.clear();
_passwordController.clear();
}
),
//TODO:将立面添加到下一个(103)
//待办事项:将倒角矩形边框添加到下一个(103)
升起的按钮(
子项:文本('NEXT'),
已按下:(){
//TODO:显示下一页(101)
Navigator.pop(上下文);
},
),
],
),
],
),
),
);[在此处输入图像描述][1]
}
}
//TODO:添加AccentColorOverride(103)

需要直接定义资产,而无需在中定义资产的路径** 颤振网页预览 **


您是否必须将资产路径添加到
pubspec.yml
?否迁移指南显示######对于预览,资产的处理方式不同。删除或注释此部分。如果答案解决了问题,请接受答案。所有路径都与资产/文件夹相关。因此,要将图像添加到我们领先的
,而不是
资产/
,我无法在提示前2天接受我的答案。
Image.asset('diamond.png')