- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个 .NET Standard 2.1 Blazor WebAssembly 应用程序。
我尝试根据环境变量包含或排除样式表。
在 .NET Core 中,通常有 Environment Tag Helpers,如下例所示:
<environment include="Development">
<link rel="stylesheet" href="css/style.css" type="text/css" />
</environment>
<environment exclude="Development">
<link rel="stylesheet" href="css/style.min.css" type="text/css" />
</environment>
这在 Blazor Server 应用程序中工作得非常好,但在 Blazor WASm 中却不行,因为这是客户端代码。
await jsInterop.InvokeVoidAsync("helpers.setup", "Development");
我在客户端的 JavaScript 如下所示:
window.helpers = {
setup: (environment) => {
if (environment === "Development") {
// remove production styles
}
if (environment !== "Development") {
// remove development styles
}
}
};
这个解决方案的问题是,我想将我的样式放入我的头文件并将它们分组到
<section>
元素或类似的东西 - 在有效的 HTML5 中不起作用。
最佳答案
免责声明:
这只是我尝试过的似乎有效的方法。我找不到任何支持这样做的文档,也找不到任何说不要这样做的文档。 如果有任何官方文件,请告诉我。
documentation状态:
When running an app locally, the environment defaults to Development.When the app is published, the environment defaults to Production.
Program.cs
由新的 Web 程序集项目模板生成的文件
builder
由
WebAssemblyHostBuilder.CreateDefault(args);
创建这必须意味着所有默认服务必须已经在服务容器中注册。
IWebAssemblyHostEnvironment
配置服务。
builder.RootComponents.Add<App>("app");
添加应用程序
<app></app>
根
组件 用于
index.html
文件。
<head></head>
组件 看看会发生什么。
Head.razor
包含通常存在于
<head></head>
之间的所有 html标签。
@using Microsoft.AspNetCore.Components.WebAssembly.Hosting
@inject IWebAssemblyHostEnvironment hostEnv
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<base href="/" />
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="css/app.css" rel="stylesheet" />
@*Check the environment value*@
@if (hostEnv.IsDevelopment())
{
<title>BlazorWasmApp - In Debug</title>
<link href="css/debug.css" rel="stylesheet" />
}
else
{
<title>BlazorWasmApp - Not Debug</title>
<link href="css/live.css" rel="stylesheet" />
}
@code {}
因为是
组件 您可以注入(inject)
IWebAssemblyHostEnvironment
并检查
.IsDevelopment()
,
.IsProduction()
等..扩展方法值。
<head>
标记为
index.html
文件作为
<head>...gets overwritten...</head>
的内容似乎被完全覆盖了。
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>BlazorWasmApp</title>
<base href="/" />
<link href="css/app.css" rel="stylesheet" />
</head>
<body>
<app>Loading...</app>
...
...
还留下
<head>
带有对
cs/app.css
的引用的标记当应用程序正在加载时,文件不会改变它的外观......
Head
类到
builder.RootComponents
收藏在
Program
类(class)。
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
//Add the Head to root components
builder.RootComponents.Add<Head>("head");
builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
await builder.Build().RunAsync();
}
我在
wwwroot/css
中添加了 2 个 css 文件文件夹
debug.css
和
live.css
每个都包含一个简单的
body { background-color:*red or blue* }
风格。
launchSettings.json
文件,在配置文件部分,设置
IIS Express : environmentVariables : ASPNETCORE_ENVIRONMENT
到“发展”下
[YourAppName] : environmentVariables : ASPNETCORE_ENVIRONMENT
到“生产”。
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"
},
"BlazorWasmApp": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Production"
},
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"
}
}
使用 IIS Express 配置文件(开发)启动应用程序时,背景为
红色 当使用 [YourAppName] 配置文件(生产)启动应用程序时,背景为
蓝色 .
<head></head>
使用开发者工具的标签 head 标签的内容包含根据环境的 css 引用。
关于javascript - Blazor WebAssembly 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63052399/
我在 WebAssembly 中看到的每个数据部分示例都使用字符串,即 (data (i32.const 16) "Hello World") 如何将这些部分与二进制数据一起使用?我怎么能做一些等同于
详细介绍 WebAssembly 的主要站点,https://webassembly.org/ ,自 1.0 版发布以来似乎没有更新,甚至是功能路线图。 docs on MDN好像也好不到哪里去,th
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
例如,C 没有与 Rust 相同的安全解决方案,但是用 Rust 编写的 WebAssembly 是否具有 Rust 的优点? 用 Rust 编写并转换为 WebAssembly 的程序会比用 C 编
垃圾收集语言,例如 Go 和 AssemblyScript,需要随应用程序一起提供运行时来处理垃圾收集。这导致比没有垃圾收集的语言更大的二进制大小。编译为 WebAssembly 的各种语言的二进制大
Webassembly 仅提供一种更高级的浮点运算:平方根。 它没有任何其他通常在 CPU 中实现的功能,例如幂和三角函数,官方常见问题解答中解释了这一基本原理: WebAssembly doesn’
有人可以分享语法来静态创建具有某些元素的表并引用它吗?我找不到这样做的任何 Web 程序集代码。 还有一些细节,比如我可以有多个列,如果索引不在表中会发生什么等会有所帮助吗? 最佳答案 (针对 202
有人可以分享语法来静态创建具有某些元素的表并引用它吗?我找不到这样做的任何 Web 程序集代码。 还有一些细节,比如我可以有多个列,如果索引不在表中会发生什么等会有所帮助吗? 最佳答案 (针对 202
即一方面,预编译代码更难阅读,因此更难以有意义地更改浏览器代码。 它如何比 JS 更“沙盒化”,这是否使它不那么容易被破解? “WebAssembly 被指定在安全的沙盒执行环境中运行。” - htt
https://webassembly.github.io/demo/说:“实现了完整的执行语义。”听起来 MVP 已经完成,但到底缺少什么,或者我做错了什么? 浪费: (module (me
我正在试验 WASM,我想将图片编码为 WebP 以学习 WASM。 我正在尝试编译 libwebp到单个 mjs 文件中。具体来说,encoding utility .我正在使用 Emscripte
我的问题类似于this one ,但不是属于 Blazor server 应用程序,我在 Blazor webassembly 应用程序的上下文中询问。我意识到在这个浏览器执行上下文中只有一个 (UI
我想使用这个很棒的包:https://github.com/hpcc-systems/hpcc-js-wasm它将 Webassembly (graphizlib.wasm) 与要使用的 Javasc
没有使用 indirect_call 的例子可在线使用。基于语义文档,我试过 (call_indirect (i32.const 0) (i32.const 0) ) 数字是随
我需要将 wasm 应用程序直接嵌入到 html 页面本身,而不是从单独的文件中加载它(例如通过 xhr)。到目前为止,我设法通过将字节直接“打印”到 Uint8Array 中来嵌入它(见下文),但它
我需要一个 WebAssembly 的“br_table”指令示例,因为我不知道如何直接以 WebAssembly 文本格式使用该指令。 就像下面的代码,我看不出它的构造结构对应的是哪一部分。哪一部分
是否有任何工具(目前)可以将 wasm 模块编译为 native 可执行文件(例如 ELF 或 .exe 文件)?类似 emscripten 的东西,但反过来。如果做不到这一点,有没有其他方法可以在浏
我尝试了 Blazor Webassembly。我在 Visual Studio 中创建了一个新的 Blazor Webassembly 项目。这为我们提供了一个基本的示例项目,其中包含可以通过单击增
我刚刚开始研究 WebAssembly MVP,并注意到无法访问堆栈和堆栈指针,或者实际上没有任何结构化异常处理支持(抛出/捕获)等。 鉴于它应该是一个 C 编译目标,它肯定可以实现 setjmp 和
在 Uno Platform for WebAssembly 中实现 URL 深度链接的任何线索或方向? 我看到它在以下项目中实现,可以在 https://platform.uno/showcases
我是一名优秀的程序员,十分优秀!