类似于我看到的其他一些错误...我在我的域上的浏览器上加载我的Flutter(release)Web应用程序时,在浏览器上遇到此控制台错误Uncaught ReferenceError: _flutter is not defined
奇怪的是,这个错误并没有出现在我的Chrome浏览器配置文件和Firefox(非私人窗口)上。
在其他浏览器上,我在加载Web应用程序时会出现白色。
此外,在应用程序加载的浏览器上,页面的源代码明显包括一个flutter.js
文件x1c 0d1x
但在另一个窗口中,它没有加载,这是源选项卡
我通过kubernetes上的nginx服务器托管我的flutter web应用程序,这是我的Dockerfile
#Stage 1 - Install dependencies and build the app in a build environment
FROM debian:latest AS build-env
# Install flutter dependencies
RUN apt-get update
RUN apt-get install -y curl git wget unzip libgconf-2-4 gdb libstdc++6 libglu1-mesa fonts-droid-fallback lib32stdc++6 python3 sed
RUN apt-get clean
# Clone the flutter repo
RUN git clone https://github.com/flutter/flutter.git /usr/local/flutter
# Set flutter path
ENV PATH="${PATH}:/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin"
# Run flutter doctor and enable web
RUN flutter doctor
RUN flutter channel stable
RUN flutter upgrade
RUN flutter config --enable-web
# Copy files to container and build
RUN mkdir /app/
COPY . /app/
WORKDIR /app/
RUN flutter clean && flutter pub get && flutter build web
# Stage 2 - Create the run-time image
FROM nginx:1.21.1-alpine
COPY --from=build-env /app/build/web /usr/share/nginx/html
当我执行到我的flutter-web-app pod并导航到/usr/share/nginx/html
文件夹时,我确实看到了我希望看到的内容!
想知道我在这里做错了什么!一直在处理这个问题几天了,现在似乎没有什么我已经尝试似乎解决它!开放给任何想法!
提前感谢:)
1条答案
按热度按时间qvk1mo1f1#
我发现了我的错误...留下这篇文章,以防其他人也有同样的经历。
所以这个问题是双重的。它在一个浏览器配置文件上工作,因为数据已经缓存。然而,它不是在任何其他浏览器上,所以空白屏幕确实是预期的行为。
主要问题是由于错误的
Ingress
配置,该配置仅在/
的Exact
路径上匹配当flutter试图在
my.domain.name/flutter.js
获取静态文件flutter.js
时-它遇到了404,这是由我的入口默认后端带来的。解决方案是将我的
Ingress
规则spec
改为在/app
上进行前缀匹配,以便现在通过路由my.domain.com/app/flutter.js
请求资源-不再遇到404 -这解决了我面临的最初问题。TLDR -确保您的入口规则规范不是太严格!