第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Blazor WebAssembly 為特定環(huán)境加載不同的腳本

Blazor WebAssembly 為特定環(huán)境加載不同的腳本

函數(shù)式編程 2022-12-02 15:59:06
我目前正在開發(fā) .NET Standard 2.1 Blazor WebAssembly 應(yīng)用程序。我嘗試根據(jù)環(huán)境變量在我的 index.html 中包含或排除 JavaScript 文件。Blazor WebAssembly 應(yīng)用不是 Asp.NET Core 托管的。在 .NET Core 中通常有環(huán)境標(biāo)簽幫助程序,如下例所示:<environment include="Development">    <script src="js/app.js"></script>    <script src="js/helpers.js"></script></environment><environment exclude="Development">    <script src="js/site.min.js"></script></environment>正如這個(gè)問題Blazor WebAssembly Environment Variables中已經(jīng)討論的那樣,Environment Tag Helpers 是服務(wù)器端代碼,因此在 Blazor WASm 中不起作用。現(xiàn)在我嘗試根據(jù) Blazor WebAssembly 中的環(huán)境變量找到一個(gè)包含/排除 JavaScript 文件的好解決方案。第一個(gè)想法是,類似于 CSS,創(chuàng)建一個(gè)組件調(diào)用<Scripts>以加載 index.html 上的不同腳本文件,如下所示:@using Microsoft.AspNetCore.Components.WebAssembly.Hosting@inject IWebAssemblyHostEnvironment hostEnv   @*Check the environment value*@@if (hostEnv.IsDevelopment()){    <script src="js/app.js"></script>    <script src="js/helpers.js"></script>}else{    <script src="js/site.min.js"></script>}@code {}不幸的是,這不起作用,因?yàn)?lt;script>不允許在 Blazor 組件(.razor 文件)中使用該元素。出現(xiàn)以下錯(cuò)誤:腳本元素允許作者在其文檔中包含動(dòng)態(tài)腳本和數(shù)據(jù)塊。該元素不代表用戶的內(nèi)容。... 腳本標(biāo)簽不應(yīng)放置在組件內(nèi),因?yàn)樗鼈儾荒軇?dòng)態(tài)更新。要解決此問題,請(qǐng)將腳本標(biāo)記移動(dòng)到“index.html”文件或其他靜態(tài)位置。... https://go.microsoft.com/fwlink/?linkid=872131在 Blazor Webassembly 中如何根據(jù)環(huán)境變量(即開發(fā)、生產(chǎn)或暫存)加載不同的腳本?你知道如何解決這個(gè)問題嗎?
查看完整描述

3 回答

?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

只需將 index.html 代碼復(fù)制到服務(wù)器項(xiàng)目中的 .cshtml(在以下示例中名為 BlazorApp.cshtml)中,然后回退到此頁面。


public void Configure(IApplicationBuilder app)

{

...

    app.UseEndpoints(endpoints =>

    {

        ...

        endpoints.MapFallbackToPage("/BlazorApp");

    }

}

并使用標(biāo)簽更新代碼以<environment>方便您。


查看完整回答
反對(duì) 回復(fù) 2022-12-02
?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊

我想在開發(fā)期間添加 Tailwind CDN 腳本標(biāo)簽。我最終使用了以下解決方案:


索引.html


    <script src="_framework/blazor.webassembly.js"></script>

    <script>

        // If localhost, add tailwind CDN (or any other script that you want)

        if (window.location.hostname == 'localhost') {

                var customScript = document.createElement('script');

                customScript.setAttribute('src', 'https://cdn.tailwindcss.com');

                document.head.appendChild(customScript);

        }

    </script>


查看完整回答
反對(duì) 回復(fù) 2022-12-02
?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊

請(qǐng)檢查此答案中的解決方案(與上面鏈接的問題相同),這似乎有效。


基本上,解決方法是在Head.razor根據(jù)解決方案調(diào)用的新組件中使用它:


@inject IWebAssemblyHostEnvironment hostEnv


@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" />

}

新Head.razor組件:


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();

}


查看完整回答
反對(duì) 回復(fù) 2022-12-02
  • 3 回答
  • 0 關(guān)注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)