Activities of "liangshiwei"

I will check it.

Hi,

It always works for me, I successfully deployed it to my iphone

Hi,

You can try:

var builder = WebApplication.CreateBuilder(args);
    builder.WebHost.UseSentry();
    builder.Host
        .AddAppSettingsSecretsJson()
        .UseAutofac()
        .UseSerilog();
    await builder.AddApplicationAsync<MyProjectNameWebPublicModule>();
    var app = builder.Build();
    app.UseSentryTracing();
    await app.InitializeApplicationAsync();
    await app.RunAsync();
    return 0;

Could you share the error logs? thanks.

Hi,

Please update the config:

export const configuration = {
    client_id: 'myReact_APP',
    redirect_uri: window.location.origin + '/#/authentication/callback',
    silent_redirect_uri: window.location.origin + '/#/authentication/silent-callback',
    scope: 'openid profile email api offline_access myReact',
    authority: 'https://localhost:44308',
    refresh_time_before_tokens_expiration_in_second: 40,
    service_worker_relative_url:'/OidcServiceWorker.js',
    service_worker_only: false,
    // monitor_session: true,
};

myReact_APP

You need create a client application named myReact_APP

redirect_uri: window.location.origin + '/#/authentication/callback', Here assume window.location.origin is http://localhost:4200

Hi,

Abp Angular Team will answer you

Hi,

This is a known issue, we fixed it in the patch version.

Your ticket refunded.

You can check this: https://support.abp.io/QA/Questions/5186/What-wrong-with-my-menu-construction-May-ABP-framework-throw-detail-exception-for-us-to-debug

the biggest problem is the initial page/login page load time is too long (30 seconds in my development environment).

Maybe there are some problems with your project. After our test, it usually takes 5-10 seconds.

Is there is a plan to support blazor united, which is a hope to improve the initial loading time.

Yes, we will try to support Blazor united

Hi,

This is the design of Blazor: https://learn.microsoft.com/en-us/dotnet/core/compatibility/aspnet-core/5.0/blazor-static-web-assets-validation-logic-updated

You can try this:

wwwroot/scripts/leptonx-blazor-compatibility.js

window.afterLeptonXInitialization = function () {

    var isRtl = JSON.parse(localStorage.getItem("Abp.IsRtl"));
    var direction = isRtl ? "rtl" : "ltr";

    replaceStyleWith(
        createStyleUrl('layout-bundle', direction),
        `lpx-layout-bundle-style-${direction}`,
        `lpx-layout-bundle-style-${direction === 'rtl' ? 'ltr' : 'rtl'}`
    );
    replaceStyleWith(
        createStyleUrl('abp-bundle', direction),
        `lpx-abp-bundle-style-${direction}`,
        `lpx-abp-bundle-style-${direction === 'rtl' ? 'ltr' : 'rtl'}`
    );
    replaceStyleWith(
        createStyleUrl('blazor-bundle', direction),
        `lpx-blazor-bundle-style-${direction}`,
        `lpx-blazor-bundle-style-${direction === 'rtl' ? 'ltr' : 'rtl'}`
    );
    replaceStyleWith(
        createStyleUrl('font-bundle', direction),
        `lpx-font-bundle-style-${direction}`,
        `lpx-font-bundle-style-${direction === 'rtl' ? 'ltr' : 'rtl'}`
    );


    function createStyleUrl(theme, direction = 'ltr') {
        const styleName = direction === 'rtl' ? `${theme}.rtl` : theme;
        return `${window.currentLayout}/css/${styleName}.css`
    }

    function createId(theme, type) {
        return theme && `lpx-theme-${type}-${theme}`;
    }

    function replaceStyleWith(path, id, previousId) {
        const link = document.createElement('link');
        link.href = path;
        link.type = 'text/css';
        link.rel = 'stylesheet';
        link.id = id;
        const prevElem = document.querySelector(`#${previousId}`);
        document.getElementsByTagName('head')[0].appendChild(link);
        if (previousId) {
            prevElem?.remove();
        }
        return link;
    }

    function loadThemeCSS(key, theme, themeOld, cssPrefix, direction = 'ltr') {
        const themeId = createId(theme, key);
        const previousThemeId = createId(themeOld, key);

        replaceStyleWith(createStyleUrl(cssPrefix + theme, direction), themeId, previousThemeId);
    }
};

(function () {

    (function(history){
        var pushState = history.pushState;
        history.pushState = function(state) {
            if (typeof history.onpushstate == "function") {
                history.onpushstate({state: state});
            }
            setTimeout(function(){
                var scrollBar = leptonx.init.perfectScrollbarInstances[0];
                if(scrollBar)
                {
                    scrollBar.element.scrollTop = 0;
                }

                leptonx.mobileNavbar.closeMenu();
            }, 100);

            return pushState.apply(history, arguments);
        };
    })(window.history);

    function isAlreadyLoaded(id) {
        return document.querySelector(`link[id^="lpx-theme-${id}-"]`)?.id;
    }

    function loadThemeCSS(key, event, cssPrefix) {
        const newThemeId = createId(event.detail.theme, key);
        const previousThemeId = createId(event.detail.previousTheme, key);
        const loadedCSS = isAlreadyLoaded(key);

        if (newThemeId !== loadedCSS) {
            leptonx.replaceStyleWith(
                createStyleUrl(cssPrefix + event.detail.theme),
                newThemeId,
                previousThemeId || loadedCSS
            );
        }
    }

    function createId(theme, type) {
        return theme && `lpx-theme-${type}-${theme}`;
    }

    window.initLeptonX = function (layout = currentLayout, defaultStyle = "dim") {
        window.currentLayout = layout;

        leptonx.globalConfig.defaultSettings =
            {
                appearance: defaultStyle,
                containerWidth: 'full',
            };

        leptonx.CSSLoadEvent.on(event => {
            loadThemeCSS('bootstrap', event, 'bootstrap-');
            loadThemeCSS('color', event, '');
        });

        leptonx.init.run();
    }

    const oldAfterLeptonXInitialization = window.afterLeptonXInitialization;

    window.afterLeptonXInitialization = function () {
        if(oldAfterLeptonXInitialization){
            oldAfterLeptonXInitialization();
        }
    }

    function createStyleUrl(theme, type) {

        if (isRtl()) {
            theme = theme + '.rtl';
        }

        if (type) {
            return `${window.currentLayout}/css/${type}-${theme}.css`
        }
        return `${window.currentLayout}/css/${theme}.css`;
    }

    function isRtl() {
        return document.documentElement.getAttribute('dir') === 'rtl';
    }
})();
public class MyScriptContributor : BundleContributor
{
    public override void ConfigureBundle(BundleConfigurationContext context)
    {
        context.Files.RemoveAll(x => x.Contains("leptonx-blazor-compatibility.js"));
        context.Files.Add("/scripts/leptonx-blazor-compatibility.js");
    }
}

options.ScriptBundles.Configure(
    BlazorLeptonXThemeBundles.Scripts.Global,
    bundle =>
    {
        bundle.AddContributors(new MyScriptContributor());
    }
);

Copy all CSS to your project.

Now, it's working

Hi,

You are using source code references, but there is a missing wwwrootfolder in the abp framework source code you downloaded, you can manually add these files to this project and rebuild the solution

You will see it working now:

Showing 3731 to 3740 of 6693 entries
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 25, 2025, 06:16
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.