Как обслуживать содержимое веб-сайта Stati c через точку Net базовый веб-интерфейс APi в Azure - PullRequest
0 голосов
/ 05 августа 2020

У меня есть базовый веб-API Dot Net, разработанный, развернутый и работающий в Azure. На данный момент он служит API-шлюзом. Я хотел бы обслуживать контент размером HTML, когда пользователь нажимает root URL-адреса в браузере.

И контент нашего веб-сайта публикуется в azure хранилище за CDN с помощью Stati c Web Site. Я выполнил шаги из ссылки ниже и настроил его.

https://microsoft.github.io/AzureTipsAndTricks/blog/tip203.html

Как мы обслуживаем этот контент в моем dot net core web api из azure и вернуть это содержимое в браузер.

У меня есть приведенный ниже код, который работает для содержимого, которое у меня есть локально.

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                app.UseHsts();
            }

            app.UseHttpsRedirection();

            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapDefaultControllerRoute();
            });
        }

Должен ли я читать содержимое хранилища azure под stati c большой двоичный объект веб-сайта и вернуть его или просто перенаправить на Stati c URL-адрес веб-сайта или CDN.

Я пытаюсь следовать архитектуре с ocelot, как предложено в ответе 2 ниже

ASP. NET Промежуточное ПО Core Api-Gateway

1 Ответ

0 голосов
/ 06 августа 2020

Я лично пробовал содержимое описания вашей проблемы, сначала покажите мой код и загрузите его на github , вы можете ссылаться на него. И предлагаем вам прочитать официальный документ .

//for wwwroot folder
app.UseStaticFiles();

//for wwwroot outside folder

app.UseStaticFiles(new StaticFileOptions
{
     FileProvider = new PhysicalFileProvider(
         Path.Combine(env.ContentRootPath, "StaticContent")),
     RequestPath = "/StaticContent"
});

Моя структура проекта:

enter image description here

Compilation options, including custom folders.

enter image description here

All preparations for the project are completed. Here are my suggestions for your question:

  1. If you are using azure web app services, you can access the API and static resources by directly using the project. If you want to use cdn, you can set it in Networking in the webapp, which can also achieve your needs.

enter image description here

  1. Если вы просто используете веб-сайт stati c в хранилище, то наш основной проект. net, похоже, не может работать непосредственно в нем, и должно быть отсутствие операционной среды (мои результаты тестов такие, и я не пробовал другие методы, чтобы решить эту проблему). введите описание изображения здесь

    Я предлагаю, чтобы, если вам действительно нужно использовать файлы ресурсов stati c в хранилище для достижения, скопируйте исходные файлы ресурсов stati c, но это два разных URL-адреса. из URL-адреса ссылки для доступа к api.

В итоге, я предлагаю попробовать свой первый план, который определенно вам очень хорошо поможет.

...