From 232daeff7f5e8eb329628907b31654cae3ef9634 Mon Sep 17 00:00:00 2001 From: ElderJames Date: Sun, 26 Jan 2025 13:56:26 +0800 Subject: [PATCH] feat: support base url --- .../Shared/ProLayout.razor | 3 ++- .../wwwroot/data/menu.json | 16 ++++++++-------- .../AntDesign.ProLayout.Wasm/wwwroot/logo.png | Bin 0 -> 7837 bytes src/layout/src/BasicLayout.razor | 2 +- src/layout/src/BasicLayout.razor.cs | 2 +- src/layout/src/GlobalHeader/GlobalHeader.razor | 2 +- .../src/GlobalHeader/GlobalHeader.razor.cs | 2 ++ src/layout/src/HeaderView.razor | 2 +- src/layout/src/HeaderView.razor.cs | 1 + src/layout/src/SiderMenu/SiderMenu.razor.cs | 2 +- 10 files changed, 18 insertions(+), 14 deletions(-) create mode 100644 src/layout/example/AntDesign.ProLayout.Wasm/wwwroot/logo.png diff --git a/src/layout/example/AntDesign.ProLayout.Wasm/Shared/ProLayout.razor b/src/layout/example/AntDesign.ProLayout.Wasm/Shared/ProLayout.razor index 823f4f5..1af72f2 100644 --- a/src/layout/example/AntDesign.ProLayout.Wasm/Shared/ProLayout.razor +++ b/src/layout/example/AntDesign.ProLayout.Wasm/Shared/ProLayout.razor @@ -1,10 +1,11 @@ @inherits LayoutComponentBase diff --git a/src/layout/example/AntDesign.ProLayout.Wasm/wwwroot/data/menu.json b/src/layout/example/AntDesign.ProLayout.Wasm/wwwroot/data/menu.json index 61b25c4..b059b9b 100644 --- a/src/layout/example/AntDesign.ProLayout.Wasm/wwwroot/data/menu.json +++ b/src/layout/example/AntDesign.ProLayout.Wasm/wwwroot/data/menu.json @@ -1,30 +1,30 @@ [ { - "path": "/", + "path": "", "name": "welcome", "key": "welcome", "icon": "smile" }, { - "path": "/admin", + "path": "admin", "name": "admin", "key": "admin", "icon": "crown", "children": [ { - "path": "/admin/sub-page", + "path": "admin/sub-page", "name": "sub-page", "key": "admin.sub-page", "icon": "crown" }, { - "path": "/admin/sub-page2", + "path": "admin/sub-page2", "name": "sub-page2", "key": "admin.sub-page2", "icon": "crown" }, { - "path": "/admin/sub-page3", + "path": "admin/sub-page3", "name": "sub-page3", "key": "admin.sub-page3", "icon": "crown" @@ -32,19 +32,19 @@ ] }, { - "path": "/list", + "path": "list", "name": "list.table-list", "key": "list.table-list", "icon": "table", "children": [ { - "path": "/list/sub-page", + "path": "list/sub-page", "name": "sub-page", "key": "list.sub-page", "icon": "crown" }, { - "path": "/list/sub-page2", + "path": "list/sub-page2", "name": "sub-page2", "key": "list.sub-page2", "icon": "crown" diff --git a/src/layout/example/AntDesign.ProLayout.Wasm/wwwroot/logo.png b/src/layout/example/AntDesign.ProLayout.Wasm/wwwroot/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..739b3462bde057051c1c255aba7ff53bfc3f9539 GIT binary patch literal 7837 zcmV;O9%A8%P)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00004XF*Lt006O$eEU(800001 zb5ch_0Itp)=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m_e01m_fl`9S#0015I zNklZ+a@q%XEpb?a8ut^57&`vRz>Q#!Fi7soywosf~M7b{`u>lkDaWFYY>DZthH zFjpw|7ft6*^8;y22UAM2I;O;`(mWkdcpCGyV_FTducqd6ss9s@>B<<-qm*@6VQfbt zR<-rew^`KhMoi6{H-_pofg#o-W0C$VT>DRdYE8VqZEVYcu?$$tBVZjhs;spLvM$Q* zmJm9ttNF96z5RqM0=V$0crza!SeqD8)#wMv=6sgsQ1eL!LcJM~(mV%Lt~#tBnE6`U zma#m;kk?HIOZHz?y~YpVlk?`yppRTehmH9UL>tghcTlhl+TWYMRJ@GtT^S(=3nHmZ`Z4;hnYLVt0X~q0y>ZY=oE05We}?Af8Sp6wF|nJ{psL=z7kSi-*4?5 zoBUGf0j-hTfQpq_6-obM}2W61*v>(U(vGqBSeMZ4|naXfenLH-^;rR6LG+PKD6RCQF z2PLTxn8N%*x?ahGUlmtefmsxM)C&Q0!nf9Yv~R%`Zop66a!VuKbVnWl5#VN!M1Y&Y zF8UmuWN}&sZOa6i!q#F-OE6CWV>d@9^cj35iF^^EP$g>Lj~hikf)EJifH;^)&p9O+ z`|_j5>`pd0c9}TLp?hWf1_lcVw%lD1C;@k40q%BRrZF|*j2U?X;BxSL2rjtZoG&1h zn!lx>x;NvE)9nB+`V5mQDewqHX_8|Rz;Rkpan5}d=U7CXdnkhnpRIn9CI-@S;8L%K zo<1*-L5O^m$Q58&vjY1RHFLn8`g<&w?9auIDxAl8opTG2jdE|DyEfMB?IVB7wB!ju z39^V2o$fThh73MQ(aClvK)3}Hv&KE@i3WAUG?&hg zGIDInjrGB-GsuFzfR9-wuQ{G7DzeQ$^q=eA!EBKLqn}p-LFJ3Fqs~=8xqvEzB(W)j zy1F2f>Vl;Pb?ox1q8W|*k+}n+u-MK5&K%nOpi?(YUsn-Q8*ruh}TrVH$ZS<=#gG=75gtIDjd?Dxs7DgfJlFq`WyEz#NE({-7bQJoGK+okJ4GM@sa) z?aT1e%LoBCgDw2^wO6J;5agE)P?gL$1Hwr>0Kr`<>Q z`s$xMloENcivbSkEH8JzuQot1rDQA2%Hh75>;RD==-duCL4T$mypEl48w!@O_tqrV zjHbg;2F)F!%ZH`sQ|xh04Z%3r7PVIa2gtRAuT$IMlarfRj9L+olcnN*04myV1s1lowAu4l3?Eo4!y!wIz zQ$vTrL#lad{n1b`b}0dN9|4#sS)4mH)?DX-z1SD30H16C#TRQ0}_!nfZE1A~z3u6lDK#9INxsu*D zku*|0y|3OXwfh)@byK;7z1ZW0jO98_?T7}02t_=K-9|&4CF8FRASsZMssm?s%sZ_I zPLULOuDzT7tjYb#n&J~@H4~9<25tD4jVLWh1ZZIpUu}R)fW37pfj`hG{NjeaBu!Qn zwCtVQ3!t|Fe2N1|fNxh|DsPe`d*k_Ju%xDxwlqek4=02T0uo(Sg>jhQH)en#G$$4= zY;+a~axn&=P&p77fnElLo{AD6KEJJ@ib=nvZy!|^3?6YLEfy?@NXXari)F|X0q{Al z;s9Po3t4&t!M~93DFgoZzBhqM%A54vqtrPAY~{+LV+>VeFBJ@Irh6I;Q^>P(1Sh+) z0ZNtvXbc1uo9O8{|5VZU#KCDU{TLOTPpAcRKJ{KF_a=LeKSb{LLKaTW(~G6+PRr_O6+Am|RR*Z_sOH~rzU8&errO29Yh2P`tqb``z%qn-!J*qh%! zXOe+#n6q}AN~g!u$uo`vL3Sg64S$?=20_IY6s6eQ+v@`?b7SiLV=8zJ`BA4D_iAV+ zsv!NWEneguq`Lq5Yr1!u0r)=f^wa1NM;9Uh#7rGSsVH|_z%EDt;1l?t5hF0(I=_M1 z<}CV+qi>rGJUvE}mVMlcx^;@Q`3bm#J@yNs*iO!$-;_dW1C?vC2VTGK5f=0$m;!Qk z0BsTOE}Ewrfj-*+Lm?$+eRmW!(1pY#qcuZ|!AQ!krQ=$|sA2P@lKd%a=wCtxKtCgu z*#IbUzDmgTRpIZ0!j@3Eh(TOifY;}<`rEMiQ$dZfLEca zoAoX!>Hz0Du+cOZt&mvmTV~F5O(h6A?5JA%i@gRb|Gn;OQjFb4Wg9KeEA}o1#TTqV zbjR^_L;!H|+5p(HG?+O3{Tr$6+URU_{u>PXS;yKaSg-<_j{6IWW#KjAM3SNG_N<*S zw?2>w+?e`v_idog4?q#P3<^sEt)2~z37{Z%JIFH_fhUm-khtOINlEF?E17=D7R!1B z%t#Q0u9@>8cda<*cJmCM5ufwjwJgKNpgu^$%xc4h)G3f8%ycWrN(0=KmqFI!s|`?Y z{PEh>+GG&b6*{M7C!rPvw+A?OW_7!^#kb|f9BhE{_Wc-K;*o-xw#`bIHJ34xer z;KUfTQFjV-hn(nmJH4!5A*33*PZ}E_dEHG-Nx+?CRMp#ydFZBV>*#E+q67}qJhj?( z`4^nNAQG2SO#y@n$kY|H^wNasp6^*oSilw868-mJ!D!-$gB>Sg=eHc8f{n#Fz5oFr zcAa)$PmjMgK$(ajarK-lk;BHUHH`u=u!A`9(dy%8Y-Jrw9j*V%Hvd$e+xJ@Tw_GzM z0dJw>R{E%*E0yBNmar!l6G1qbvd*_q`NeKI-juh^Xao*X128#t&JEN+8`Tvq1z>d1 zpSj^}kH6&gJvEzFYs8Seq4fa_NDrx#J#Fm;@E|3M7=uh((Yy%!8EKUi;B9@&!xsiz z7%5CJCF{CM78}6JcmTfxGFQ!RLF5}rj|Yu&?#cQFToI~@o$Ckq`V`vQepr6;mzOcb zne?uxb-iB@uh-Le&Cur5g0W+pa>QT~pn{$x0mN{_yP4 zCzjQXc<0`(t~@FK=uZcu%bG6Ppz!qdbUHHsJhXkD;9bmWE13y1x2c2tVg2{-?dovM zO3Ocbf6v|jSigY-JB`#FF((ZrebhkWNt-dBRz;hj&cw|EGXW?xAbf@&m2j6p7DW_%;(+F#oh zVr&-MX543o)WIl{9B+bQPaspDg8O%w{r+9@#x+w)mYfYOay%SYqoQA?dIgz+AIPcj ze%95Iu)Al-*#I2bL-aJ$5NT`=@7lQD%K86(7Xn`foCVFGAX>XgvqVu;EKg1%zL}ib zIyJPt{jgpgB(9%Bh9T}K8e%TdUZCoAcxk&F(670<$NiYVLg0I}0pgdtofKf(ar*R2a|=S{zF8p)TAHbC9O0)iNFGWq7BTPy zz>D<-xFCv>xxZy*12yhdCiIWU>5tYMb^i25au3(_kEt_+*VH`%7l#rb{G4@kIEo0? z>|C#gi`T>_x4y)r%pXWX)arK>NyS1xqrW%hrND329Z5{RiHM7}xd6Ag3P8361|d0{ z7vNAua1TU)fz%Coah`vXvdjV`XFsNE5kb(SO9D1l-o5b=r{Ei0s$K0}B#IZCRR?|3 zY?2b=^kp+j;C?L_<)aE9K@9q!ArkjodpC04;lP#vhxWpb(9>%=2ZI2HgbnbwmTOh9+pK>O zGSirSO&s9XPARQ6xmd-MkzzjZ|c|83Ut!_O~%)t zH3BG*5?Qsu4u^W*+v*394QsJhQD81l!z4_@=@5Vzq52+)*I#_l%3dl)01O6meE^Pf zevg6dv#fpMs9Pwx|Hl1RQO$25r5dpaaJzAL2u=w=1?>#_qchf&!=Rs}kslmVWFH*N zITMV}D#c^br!ybJFQhWC@zbO5O#+{pUaih+`1a}dW3T)u={vuy#GU#ShSBfAFa9@vCo~)`>AIOE3^srtgF!qk6T>YlUGxZmt+(h|QRtb2 zRqrDQ+gY>Rw1qskA6$W`7{}}@;9!FWE_f$@O-_8c+za^s{3~pZegNBr;3HTzGFK1c z$KZm*-{Bo`9AHp8f-C@y6p(X|xq%tOS}W0GR5&We23Y!c#K^CB!gg*wn21HCfMN!q z)ksW8z;5;;`bpo*@eknzo&?FRs~gS6eV>8+S7`jwBe+f&2=Y8MtYi&f1c<5JZcYjT zWd@I1jYr0Do8wiq5i?{nylxaU{77DEnC_DhJB40@(?uGzl|b+guK}w}1|G`vg6xFr zMP(8_Fzd|KnmyC+1`etXfY_~XXf+;>EiDnNzPB`Rvl<^TxPVoGt<=z678M{m2V58K z*w$qdMmuc4?5W1cZbOX}R#$v~9Y4;>o-`C*HASEO$m;sSE~8AAt5 zUaaz^BrOc$FuZsBUJ}=1N!%W^Sw?MjTEZ#jZstA$lBMbkNQx{W8$(qms|o4LYJR)T z;IAiJu4~eUjyq5R#Q9rf-gCPj{ywH)Tq#^{E~CV?S<}W5L4!3nP~vcao7^#!w8-1f z^W4_a5shCo=|y$?p2_d7PbB1r=*Tb>E%fTMs=mG;Hh#)DhSCIWlo4ZHpeV0|U)$AX z3^TU`^+s8aFbZ1fT;V?fX5;hgL(K$!2tW4h@As=6ILmH-DBE*Eo|4F7@B8M_rKHgQ z=R0F#CaRk`*5(_KL(AVrx74arq5ADW{(}HWqJ@;^#=bG>aLwzxEuAVg`*!xt{t>3= z*emK1DYiY{JawTeIh@otap~0$l8l-RXcJrL?=adDV#j?0--4y9?RZV04n?;?o2c)< z6dQnf`>Y-LczO00lmpd<)iWb+zHm^p@&yJR36K>eAs(|DkM>EG4uK%sqb|-ws$^&4 zk}Iz)SVJ;6*p;^M0tIa6*(q~q#po^?f}-C;$MW<_4zb`Z*yur#i>?F+Dg zIS6W?rWSX{|E{`&h7~dzW1j@((cir5B)_%$NbKtq=7PjF0tlr}0};-nL z2o8xsUuElJ(H_9}A_z2Y<$R@O9vk8k)fO-i%UdsPqGBtuF$11e8KB#WH5+tMXA)0V zt$Dh%H2cH3p!WYeom0ngB#HTmWlMOA`oR-ak7?n3J8m5`@XAEmYn6#hO>2+d3e?^U`#^ z-S7w74I>wGuQ$i=iM!_Zp5HRhLIiKUypYP=VGQ~dAc(w_;HAXy^}nMG zd7B)HpDF+Txm9+y#(+qH61ZM}pQ8;U%E|TS6#ks_2t(aS8|Vw8;=}RLEiD!z_`^#N zC<-47eL){V3}4){=R!*Ki+`#YZZxa*DgMG@`OZ8{#i{;?C^kt?}F)PX@+SKJyhe4H08-R9$0;Ue`ke zaF8)+w;W0Db>hcI$6hu%i0mF@I8v@jPEn(lgXIOFOV7Y@9Ke?2%OnZHo%`0r&b?F} zEo|ONBS^1okDc2*D*XB2-6DW$-tOp&{@tsJ4|M}Z)OU6V+euofEa>BZ2&i1@AEowHSg?M82j3Ib^iWr z!R5vA9%WkZxtHEC?43Q&6jCW_a3=TjoK%;zIvAKCA>KxcqKTxG`usb>2VNYwvHj?c z>xGd(S5ZD37%89;!Jqcs6gy{pk0uE$ad&KFz_!JjnmZW6-Qh!f_m-m$pIq27vPvP9 zB1zM-i$|+-4YF#3B*0DK{V#ODAf-~c-l75=i~Ir5|3V@-v~OYW*%u!n{MF&!vN3|E z9ktM(J+X6|kAlRuFpgWj5W}bEwKN5Qokb6CCNsGO6d0|&hUW*HW=MUk3@6}Tc4&Y^ zKKR7-uKEH7iR(pa*t@@fBzn#z`$+U|$PN()!8m-ZCpFYYPGcKM4b?^KQdb8BCUwy@ zHO#DzC&=piKtLT!(2(_oSRH~o;#V7r)<_p3w(|%8Ius7KtDeWn%JsH3fMY{%kcdI` z4#=oGH-0R!h~Al9hTVP~zA7n3(dAK=p-S4y;krDHv$^1-^b#19*LSnN!ZFyFYr)*vA73n@2_%*#=D4S7191ABtp(k~;lsox+0ahyQW#INq`M z*L%JRIlN#B}7<(q% zxo0m7#pIFeQK$mEP}U%B7Li*RNecj}K7agJd<=>7Z;)ze)E0QmE+$c%mlD}kIuf~& z$ldBNF{=JiiAjg#Xz;Z{D{7tW#DKOczz41$3cJSS)I-4`V4s;(D%ThE0!k!?%HGi@ z7uSPdDgY}KFr7w1iF@bzl2m|O z%BrM+lLD@=ajODcJ)Bo?8A$Lw&k!o60vv;1kphD!0DS2SC72t`o zDyjTQfiRS#JJ=J~SG<6M6a5^%?3L^Fv$%qO>XS+u#8`j}{LqaTP*DLV0r)Pt-mw?p zMg^!@DPR{>&?&PKn1p(-To0Dn!G#`%&MB)Gs?Kd%9{oZErt+kJc^JQ%_!$1x6*fhd zlkuzq^w|n$>?5f8uwi+!vl{RXAqDGiU^cInOqmkc1eql5KkG(#f;yYtMGbSBg6wn) zD{xa`N$^_TvH)oNEs_{T!CJ-K&VZI!zD_(1^&kHqG$QxT^}eV8v?-GTCVhg{=h69j zZix#0G(<~@WR^1L&WC4v3b?tz#&ICX6J?b!pTN(+hH!+EPvaYLpor5$ozZ3eg5{#D zA<6Y6Hte8sy$d7UQy|E1${O-qUn=;Y0j}5Q1uI;CigCRg72t)kDqIi#b*^EVu(4AC zrv%rF>NwQ7z6?fqu)_7H7}twbKoGf-1}OkOQr5}B^^U;*jB&jdV;YuSJX0fp0AL~w zFw9TNas+;b>j%yC4pf0Q1x|}sRx{;)Y;SbgKhU=T7ohWdij_g1p5vP9U6eteo>P$P zJ=R%|P4Kkr_IDZqgt_vok|_&I;ChE;unZ0BWbHh+#EE_qr-KfhQr>08raA&^@&xei zlA4ua$V7eRdN@hA-b0;FHm=Wu|9LoZ^ftCSPXKBf2C2K4pInb8A=l$)o9orY2yyuf zaC6^z-tzzW?aliP}A|3 zmp@fM;Roj@FnIQW1a$_|!uQJy8EO{3L)Tkf7HRlb2>eCNu(wjc{H)_IFWb~G;jX_c zAbm3fQq_P3bt+t6Hm+B7e$5&1-M=hk%gmPx4&?soz40F - + } diff --git a/src/layout/src/BasicLayout.razor.cs b/src/layout/src/BasicLayout.razor.cs index 71f3440..b3bc737 100644 --- a/src/layout/src/BasicLayout.razor.cs +++ b/src/layout/src/BasicLayout.razor.cs @@ -40,7 +40,7 @@ public partial class BasicLayout : IBasicLayout [Parameter] public EventCallback OpenKeysChanged { get; set; } [Parameter] public MenuTheme Theme { get; set; } [Parameter] public OneOf Logo { get; set; } - [Parameter] public string BaseURL { get; set; } = "/"; + [Parameter] public string BaseURL { get; set; } = ""; [Parameter] public int SiderWidth { get; set; } = 208; [Parameter] public RenderFragment MenuExtraRender { get; set; } [Parameter] public bool MenuAccordion { get; set; } diff --git a/src/layout/src/GlobalHeader/GlobalHeader.razor b/src/layout/src/GlobalHeader/GlobalHeader.razor index 0fa76e9..181afe9 100644 --- a/src/layout/src/GlobalHeader/GlobalHeader.razor +++ b/src/layout/src/GlobalHeader/GlobalHeader.razor @@ -49,7 +49,7 @@ else if (Layout == Layout.Mix) {