我遇到了Blazor WebAssembly项目的问题,在我发布到停靠容器后,该项目不能呈现具有CSS隔离的组件的CSS样式.在开发场景中运行得很好,但当我将其构建到停靠容器时,它不会将样式应用于我的组件. 我的 docker 文件如下所示:
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
COPY /src/SDK/XTOS.PlayerUI.SDK.csproj /src/SDK/XTOS.PlayerUI.SDK.csproj
RUN dotnet restore /src/SDK/XTOS.PlayerUI.SDK.csproj
COPY /src/SDK/ /src/SDK
COPY /src/WebClient/XTOS.PlayerUI.WebClient.csproj /src/WebClient/XTOS.PlayerUI.WebClient.csproj
RUN dotnet restore /src/WebClient/XTOS.PlayerUI.WebClient.csproj
COPY /src/WebClient/ /src/WebClient/
WORKDIR /src
RUN dotnet build WebClient/XTOS.PlayerUI.WebClient.csproj -c Release -o /app/build
FROM build AS publish
RUN dotnet publish /src/WebClient/XTOS.PlayerUI.WebClient.csproj -c Release -o /app/publish
FROM nginx:alpine AS final
WORKDIR /usr/share/nginx/html
COPY --from=publish /app/publish/wwwroot .
COPY nginx.conf /etc/nginx/nginx.conf
它正在使用nginx来提供文件服务.Nginx conf文件如下所示:
events { }
http {
include mime.types;
limit_req_zone $binary_remote_addr zone=one:10m rate=120r/s;
server {
listen 80;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html =404;
limit_req zone=one burst=60;
}
}
}
加载媒体时不会出现错误,即使在浏览器中接收到并在index.html的中引用了css文件,但组件并未使用它们.