Browse Source

fixed product images with direct forwarding

pull/248/head
Galip Tolga Erdem 2 years ago
parent
commit
bb9d9deadb
  1. 5
      apps/public-web/src/EShopOnAbp.PublicWeb/Components/Basket/Default.cshtml
  2. 2
      apps/public-web/src/EShopOnAbp.PublicWeb/Components/Toolbar/Cart/Default.cshtml
  3. 2
      apps/public-web/src/EShopOnAbp.PublicWeb/Components/UserOrders/Default.cshtml
  4. 2
      apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj
  5. 8
      apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs
  6. 6
      apps/public-web/src/EShopOnAbp.PublicWeb/Pages/Index.cshtml
  7. 5
      apps/public-web/src/EShopOnAbp.PublicWeb/Pages/ProductDetail.cshtml
  8. 7
      gateways/web-public/src/EShopOnAbp.WebPublicGateway/yarp.json

5
apps/public-web/src/EShopOnAbp.PublicWeb/Components/Basket/Default.cshtml

@ -1,11 +1,8 @@
@using EShopOnAbp.Localization @using EShopOnAbp.Localization
@using EShopOnAbp.PublicWeb.Components.Purchase @using EShopOnAbp.PublicWeb.Components.Purchase
@using Microsoft.Extensions.Localization @using Microsoft.Extensions.Localization
@using Microsoft.Extensions.Options
@using Volo.Abp.Http.Client
@model EShopOnAbp.BasketService.Services.BasketDto @model EShopOnAbp.BasketService.Services.BasketDto
@inject IStringLocalizer<EShopOnAbpResource> L @inject IStringLocalizer<EShopOnAbpResource> L
@inject IOptions<AbpRemoteServiceOptions> options
<div> <div>
@if (!Model.Items.Any()) @if (!Model.Items.Any())
@ -34,7 +31,7 @@
<div class="basket-list flex-container vertical"> <div class="basket-list flex-container vertical">
@foreach (var item in Model.Items) @foreach (var item in Model.Items)
{ {
string imageName = item.ImageName.IsNullOrEmpty() ? $"{options.Value.RemoteServices.Default.BaseUrl}product-images/noimage.jpg" : $"{options.Value.RemoteServices.Default.BaseUrl}product-images/{item.ImageName}"; string imageName = item.ImageName.IsNullOrEmpty() ? $"product-images/noimage.jpg" : $"product-images/{item.ImageName}";
var price = item.TotalPrice.ToString("0.00"); var price = item.TotalPrice.ToString("0.00");
<div class="card basket-list-item" data-product-id="@item.ProductId"> <div class="card basket-list-item" data-product-id="@item.ProductId">
<div class="card-body"> <div class="card-body">

2
apps/public-web/src/EShopOnAbp.PublicWeb/Components/Toolbar/Cart/Default.cshtml

@ -38,7 +38,7 @@
{ {
foreach (var item in Model.Items) foreach (var item in Model.Items)
{ {
string imageName = item.ImageName.IsNullOrEmpty() ? $"{options.Value.RemoteServices.Default.BaseUrl}product-images/noimage.jpg" : $"{options.Value.RemoteServices.Default.BaseUrl}product-images/{item.ImageName}"; string imageName = item.ImageName.IsNullOrEmpty() ? $"product-images/noimage.jpg" : $"product-images/{item.ImageName}";
var price = item.TotalPrice.ToString("0.00"); var price = item.TotalPrice.ToString("0.00");
<div class="dropdown-item"> <div class="dropdown-item">

2
apps/public-web/src/EShopOnAbp.PublicWeb/Components/UserOrders/Default.cshtml

@ -56,7 +56,7 @@
<abp-column size="_2"> <abp-column size="_2">
<a href="/products/@item.ProductId.ToString()"> <a href="/products/@item.ProductId.ToString()">
@{ @{
string imageUrl = $"{options.Value.RemoteServices.Default.BaseUrl}product-images/{item.PictureUrl}"; string imageUrl = $"product-images/{item.PictureUrl}";
<img class="img-size" src="@imageUrl" /> <img class="img-size" src="@imageUrl" />
} }
</a> </a>

2
apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj

@ -10,7 +10,7 @@
<PackageReference Include="Volo.Abp.AutoMapper" Version="8.1.3" /> <PackageReference Include="Volo.Abp.AutoMapper" Version="8.1.3" />
<PackageReference Include="Volo.CmsKit.Public.Web" Version="8.1.3" /> <PackageReference Include="Volo.CmsKit.Public.Web" Version="8.1.3" />
<PackageReference Include="Yarp.ReverseProxy" Version="2.1.0" /> <PackageReference Include="Yarp.ReverseProxy" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.ServiceDiscovery.Yarp" /> <PackageReference Include="Microsoft.Extensions.ServiceDiscovery.Yarp" Version="8.0.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

8
apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs

@ -5,7 +5,6 @@ using EShopOnAbp.Localization;
using EShopOnAbp.OrderingService; using EShopOnAbp.OrderingService;
using EShopOnAbp.PaymentService; using EShopOnAbp.PaymentService;
using EShopOnAbp.PaymentService.PaymentMethods; using EShopOnAbp.PaymentService.PaymentMethods;
using EShopOnAbp.PublicWeb.AnonymousUser;
using EShopOnAbp.PublicWeb.Components.Toolbar.Cart; using EShopOnAbp.PublicWeb.Components.Toolbar.Cart;
using EShopOnAbp.PublicWeb.Menus; using EShopOnAbp.PublicWeb.Menus;
using EShopOnAbp.PublicWeb.PaymentMethods; using EShopOnAbp.PublicWeb.PaymentMethods;
@ -22,7 +21,6 @@ using Microsoft.IdentityModel.Protocols.OpenIdConnect;
using Polly; using Polly;
using StackExchange.Redis; using StackExchange.Redis;
using System; using System;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Security.Claims; using System.Security.Claims;
@ -56,7 +54,6 @@ using Volo.Abp.Ui.LayoutHooks;
using Volo.Abp.UI.Navigation; using Volo.Abp.UI.Navigation;
using Volo.Abp.UI.Navigation.Urls; using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.VirtualFileSystem; using Volo.Abp.VirtualFileSystem;
using Volo.CmsKit;
using Volo.CmsKit.Public.Web; using Volo.CmsKit.Public.Web;
using Yarp.ReverseProxy.Transforms; using Yarp.ReverseProxy.Transforms;
@ -314,15 +311,14 @@ public class EShopOnAbpPublicWebModule : AbpModule
app.UseCorrelationId(); app.UseCorrelationId();
app.UseStaticFiles(); app.UseStaticFiles();
app.UseRouting(); app.UseRouting();
// app.UseHttpMetrics();
app.UseAuthentication(); app.UseAuthentication();
app.UseAbpSerilogEnrichers(); app.UseAbpSerilogEnrichers();
app.UseAuthorization(); app.UseAuthorization();
// app.UseAnonymousUser();
app.UseConfiguredEndpoints(endpoints => app.UseConfiguredEndpoints(endpoints =>
{ {
endpoints.MapReverseProxy(); endpoints.MapReverseProxy();
// endpoints.MapMetrics(); endpoints.MapForwarder("*/product-images/{name}", "http://_http.catalogService/product-images", "/{name}");
endpoints.MapForwarder("/products/product-images/{name}", "http://_http.catalogService/product-images", "/{name}");
}); });
} }

6
apps/public-web/src/EShopOnAbp.PublicWeb/Pages/Index.cshtml

@ -2,12 +2,8 @@
@using EShopOnAbp.Localization @using EShopOnAbp.Localization
@using Microsoft.Extensions.Localization @using Microsoft.Extensions.Localization
@using System.Globalization @using System.Globalization
@using Microsoft.Extensions.Options
@using Volo.Abp.Http.Client
@using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Rating
@model EShopOnAbp.PublicWeb.Pages.IndexModel @model EShopOnAbp.PublicWeb.Pages.IndexModel
@inject IStringLocalizer<EShopOnAbpResource> L @inject IStringLocalizer<EShopOnAbpResource> L
@inject IOptions<AbpRemoteServiceOptions> options
@{ @{
string pageHeader = L["OurProducts"]; string pageHeader = L["OurProducts"];
@ -34,7 +30,7 @@
@foreach (var product in Model.Products) @foreach (var product in Model.Products)
{ {
var productPrice = product.Price.ToString("C", new CultureInfo("en-US")); var productPrice = product.Price.ToString("C", new CultureInfo("en-US"));
string productImage = !product.ImageName.IsNullOrEmpty() ? $"{options.Value.RemoteServices.Default.BaseUrl}product-images/{product.ImageName}" : $"{options.Value.RemoteServices.Default.BaseUrl}product-images/@product.ImageName"; string productImage = !product.ImageName.IsNullOrEmpty() ? $"product-images/{product.ImageName}" : $"product-images/@product.ImageName";
string buyText = L["Index:AddToBasket"]; string buyText = L["Index:AddToBasket"];
<div class="product-container"> <div class="product-container">
<div class="product-list-item" data-product-id="@product.Id.ToString()"> <div class="product-list-item" data-product-id="@product.Id.ToString()">

5
apps/public-web/src/EShopOnAbp.PublicWeb/Pages/ProductDetail.cshtml

@ -2,15 +2,12 @@
@using EShopOnAbp.Localization @using EShopOnAbp.Localization
@using Microsoft.Extensions.Localization @using Microsoft.Extensions.Localization
@using System.Globalization @using System.Globalization
@using Microsoft.Extensions.Options
@using Volo.Abp.GlobalFeatures @using Volo.Abp.GlobalFeatures
@using Volo.Abp.Http.Client
@using Volo.CmsKit.GlobalFeatures @using Volo.CmsKit.GlobalFeatures
@using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Commenting @using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Commenting
@using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Rating @using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Rating
@inject IStringLocalizer<EShopOnAbpResource> L @inject IStringLocalizer<EShopOnAbpResource> L
@inject IOptions<AbpRemoteServiceOptions> options
@model EShopOnAbp.PublicWeb.Pages.ProductDetailModel @model EShopOnAbp.PublicWeb.Pages.ProductDetailModel
@ -32,7 +29,7 @@
@{ @{
var product = Model.Product; var product = Model.Product;
var productPrice = product.Price.ToString("C", new CultureInfo("en-US")); var productPrice = product.Price.ToString("C", new CultureInfo("en-US"));
string productImage = !product.ImageName.IsNullOrEmpty() ? $"{options.Value.RemoteServices.Default.BaseUrl}product-images/{product.ImageName}" : $"{options.Value.RemoteServices.Default.BaseUrl}product-images/@product.ImageName"; string productImage = !product.ImageName.IsNullOrEmpty() ? $"product-images/{product.ImageName}" : $"product-images/@product.ImageName";
string buyText = L["Index:AddToBasket"]; string buyText = L["Index:AddToBasket"];
<div class="product-list-item" data-product-id="@product.Id.ToString()"> <div class="product-list-item" data-product-id="@product.Id.ToString()">
<a href="/products/@product.Id.ToString()"> <a href="/products/@product.Id.ToString()">

7
gateways/web-public/src/EShopOnAbp.WebPublicGateway/yarp.json

@ -64,13 +64,6 @@
{ "PathRemovePrefix": "/swagger-json/Catalog" } { "PathRemovePrefix": "/swagger-json/Catalog" }
] ]
}, },
"ProductPictures": {
"ClusterId": "catalogCluster",
"Match": {
"Path": "/product-images/{**everything}",
"Methods": [ "GET" ]
}
},
"Basket Service": { "Basket Service": {
"ClusterId": "Basket", "ClusterId": "Basket",
"Match": { "Match": {

Loading…
Cancel
Save