konfiguracja i publikacja projektu Angular i .NET Core

0

Witam,

jestem w trakcie publikacji pierwszej aplikacji w .net core i angular6 na serwerze windows server w iis. Zainstalowałem .net core hosting bundle na tym serwerze, stworzyłem projekt w iis, podałem źródło, ustawiłem wersję "bez kodu zarządzanego" jednak odczytuje tylko index.html z katalogu dist w którym jest loading... :( czy na serwerze musi też być zainstalowany node.js? na co trzeba zwrócić jeszcze uwagę??

0

Pokazuje ci się coś w konsoli przeglądarki, jakieś błędy?

0
AdamWox napisał(a):

Pokazuje ci się coś w konsoli przeglądarki, jakieś błędy?

tak, Uncaught SyntaxError: Unexpected token <

0
fazerooo napisał(a):
AdamWox napisał(a):

Pokazuje ci się coś w konsoli przeglądarki, jakieś błędy?

tak, Uncaught SyntaxError: Unexpected token <

inline.bundle.js:1 Uncaught SyntaxError: Unexpected token <
polyfills.bundle.js:1 Uncaught SyntaxError: Unexpected token <
main.bundle.js:1 Uncaught SyntaxError: Unexpected token <

0

Jak wygląda u ciebie

  <base href="/">

Sprawdź również czy ścieżki w index.html do plików .js są poprawne.

0
AdamWox napisał(a):

Jak wygląda u ciebie

  <base href="/">

Sprawdź również czy ścieżki w index.html do plików .js są poprawne.

Plik index.html mam w katalogu C:\inetpub\wwwroot\SOSPApp\ClientApp\dist

treść pliku index.html to:

<!doctype html><html lang="en"><head><meta charset="utf-8"><title>SOSPAPP</title><base href="/ClientApp/dist"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/x-icon" href="favicon.ico"><link href="styles.bundle.css" rel="stylesheet" /></head><body><app-root>Loading...</app-root><script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body></html>
0

No to już wiemy gdzie masz błąd. Tag base jest po to, jeśli twoja aplikacja jest w innym folderze. Przykład:

http://moja.aplikacja.com/ - base będzie <base href="/">

http://moja.aplikacja.com/SOSPAPP - to base będzie <base href="SOSPAPP/">.
Jeśli nie podasz tego folderu w tym tagu to twoja aplikacja będzie szukać takiego routingu (componentu), którego nie ma.

0
AdamWox napisał(a):

No to już wiemy gdzie masz błąd. Tag base jest po to, jeśli twoja aplikacja jest w innym folderze. Przykład:

http://moja.aplikacja.com/ - base będzie <base href="/">

http://moja.aplikacja.com/SOSPAPP - to base będzie <base href="SOSPAPP/">.
Jeśli nie podasz tego folderu w tym tagu to twoja aplikacja będzie szukać takiego routingu (componentu), którego nie ma.

nadal takie błędy są :(
w katalogu dist znajduje się plik index.html i wszystkie pliki .js

a w pliku index.html też trzeba dopisać "SOSPAPP/" do src pliku inline.bundle.js? bo błąd w konsoli przeglądarki wskazuje na trzy pliki js

0

A co teraz ustawiłeś w base?

0
AdamWox napisał(a):

A co teraz ustawiłeś w base?

chyba próbowałem już wszystkiego

  • "/"
  • "/SOSPAPP"
  • "/SOSPAPP/"
  • "/SOSPAPP/ClientApp"
  • "/SOSPAPP/ClientApp/"
  • "/SOSPAPP/ClientApp/dist"

i zawsze ten sam błąd w konsoli :(

0

A w IIS masz ustawioną tą ścieżkę C:\inetpub\wwwroot\SOSPApp\ClientApp\dist?

0
AdamWox napisał(a):

A w IIS masz ustawioną tą ścieżkę C:\inetpub\wwwroot\SOSPApp\ClientApp\dist?

nie, mam ustawiona - "C:\inetpub\wwwroot\SOSPApp"

0

A w pliku Startup.cs masz tak?

            app.UseSpa(spa =>
            {
                spa.Options.SourcePath = "ClientApp/dist";

                if (env.IsDevelopment())
                {
                    spa.UseAngularCliServer(npmScript: "start");
                }
            });
0
AdamWox napisał(a):

A w pliku Startup.cs masz tak?

            app.UseSpa(spa =>
            {
                spa.Options.SourcePath = "ClientApp/dist";

                if (env.IsDevelopment())
                {
                    spa.UseAngularCliServer(npmScript: "start");
                }
            });

tak

0

To już mi brakuje pomysłów. Może ktoś mądrzejszy się znajdzie :D

0

hmm, a na serwerze musi być zainstalowany node.js?

0

Nie, ale sprawdź jeszcze jaką masz zmienną środowiskową ASPNETCORE_ENVIRONMENT.

PS.
Jeśli to Windows 10 to
Prawym na Ten komputer -> Właściwości -> po lewej Zaawansowane ustawienia systemu -> Zmienne środowiskowe -> w Zmienne systemowe powinieneś mieć wpis, jak nie to dopisz z nazwą jak wyżej i wartością Production

0

nie miałem tej zmiennej ASPNETCORE_ENVIRONMENT, ale po dodaniu nic nie zmieniło się

0

Nie znam się na Windows Server, IIS ani Angularze, ale czy próbowałeś tego? -> https://stackoverflow.com/a/33260351


UPDATE: Czy poza błędem Uncaught SyntaxError: Unexpected token < pokazuje Ci się jakakolwiek inna informacja w konsoli/jakimś innym logu? Może jakiś sukces? Ostrzeżenie? Coś mało znaczącego, ale jednak innego?

0

mam jedynie błąd w konsoli oraz jak się przyglądałem network to daje status 304 :(

0

304 jest, moim zdaniem, dobrym statusem: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/304


PS. Ogólnie dobrym – w Twoim przypadku może być nieodpowiednim. Nie wiem.

0

Zrobiłem tak jak w załączniku
screenshot-20190802135731.png

jednak nadal uruchamiając przez iis nie działa i pojawiają się błędy SyntaxError: expected expression, got '<'.
Gdy otwieram index.html w przeglądarce strona wygląda prawidłowo tylko że wiadomo nie ma połączenia z serwerem bazy danych by pobrać dane.

0

Wrzuć kod z Program.cs, Startup.cs, albo jak masz ten projekt gdzieś (Git) to rzuć linka. Też miałem dużo kłopotów z deployem do IIS. Wydaje mi się, że jest gdzieś jakiś szczegół, którego nie zobaczymy póki nam tego nie pokażesz w jakieś większej części.

0

Próbowałeś z odkomentowanymi tymi liniami:

app.UseStaticFiles();
app.UseSpaStaticFiles();
0

własnie sprawdziłem i działa :D Dzięki Mistrzu! :)
Jest jeszcze jeden problem :(
screenshot-20190802160817.png

zmienna środowiskowa mam dodana na serwerze

screenshot-20190802160940.png

0

Jak kompilowałeś aplikacje pod IIS? Publish w Visual Studio? Wybrałeś opcję Release czy Debug?

0

tak Publish do pliku jako Release

1

W folderze głównym z aplikacją powinieneś mieć plik web.config, co tam masz w środku?

#edit
Wróć! :D Zmień środowiskową na Development i co się pokaże.

0

Po zmianie na development strona w przeglądarce się nie odpala
screenshot-20190803093336.png

w web.config mam -> https://4programmers.net/Pastebin/11325

1 użytkowników online, w tym zalogowanych: 0, gości: 1