• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Strona nie wykrywa moich plików js'a ( Node.js )

Object Storage Arubacloud
0 głosów
200 wizyt
pytanie zadane 27 lipca 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)
Witam.

Pierwszy raz przyszło mi pracować na serwerze node.js i mam taki problem, że gdy podłączyłem pliki js'a z zewnętrznego katalogu ( " <script src="js/index.js"></script> " ) konsola wywala błąd " Failed to load resource: the server responded with a status of 404 (Not Found) ".

Proszę o pomoc.
1
komentarz 28 lipca 2020 przez Comandeer Guru (601,590 p.)
Trudno cokolwiek powiedzieć bez struktury plików i kodu serwera.
komentarz 28 lipca 2020 przez Bakkit Dyskutant (7,600 p.)
Tak jak mówiłem wcześniej, pierwszy raz pracuje na serwerze node, także prosiłbym co konkretnie mam wysłać?

W głównym folderze mam:

- index.html,

- app.js ( kod związany z nodem i fameworkiem, z którym uczę się pracować ),

- folder "js", w którym leży właśnie plik index.js, który próbuję zaimplementować do index.html,

- i oczywiście folder node_modules, plik package.json i package-lock.json
komentarz 28 lipca 2020 przez Bakkit Dyskutant (7,600 p.)
Dodam jeszcze, że pliki nie są wczytywane tylko gdy strona www jest odpalana poprzez node.js
komentarz 28 lipca 2020 przez Comandeer Guru (601,590 p.)

A jak wygląda kod w app.js?

komentarz 28 lipca 2020 przez Bakkit Dyskutant (7,600 p.)

Tutaj wrzucam również kod z framework'a ( socket.io ):

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res) {
    res.sendfile('index.html');
});

io.on('connection', (socket) => {
    console.log('Użytkownik dołączył na serwer!');

    socket.on('move', function() {
        io.sockets.emit('moveE', {
            description: 'Move player up 2/2'
        });
    })
    
    socket.on('disconnect', () => {
        console.log('Użytkownik opuścił serwer!');
    });
  
});

http.listen(3000, function() {
    console.log('listening on *:3000');
});

 

2 odpowiedzi

+1 głos
odpowiedź 28 lipca 2020 przez Comandeer Guru (601,590 p.)
wybrane 28 lipca 2020 przez Bakkit
 
Najlepsza
Nie wykrywa, bo ich nie serwujesz. Musisz dodać middleware serwujący statyczne pliki: https://expressjs.com/en/starter/static-files.html
komentarz 28 lipca 2020 przez Bakkit Dyskutant (7,600 p.)

Zrobiłem tak:

1. Dodałem: 

var express = require('express');

dzięki temu skorzystałem z:

app.use(express.static('assets'));

2. Do folderu assets wrzuciłem skrypt js'a.

 

Efekt tego jest taki, że nie wywala mi błędu w konsoli node.js, za to w konsoli przeglądarki pozostaje bez zmian (error 404). Ścieżka do pliku jest na 100% dobra, bo gdy klikam na ścieżkę w vscode (alt + click) wyskakuje mi właśnie ten plik. To samo z plikami css'a. Próbowałem również restartować vscode i jak serwer node.js.

komentarz 28 lipca 2020 przez Comandeer Guru (601,590 p.)

Ścieżka jest dobra w vscode, ale nie jest dobra dla serwera.

Przy takim przypięciu powinna zadziałać ścieżka index.js, nie assets/index.js.

komentarz 28 lipca 2020 przez Bakkit Dyskutant (7,600 p.)

Czyli

<script src="assets/index.js"></script>

zamienić na:

<script src="index.js"></script>

Jeśli tak, to brak efektów.

komentarz 28 lipca 2020 przez Bakkit Dyskutant (7,600 p.)
Dobra, mój błąd - zrobiłem literówkę.

Dzięki za pomoc!
0 głosów
odpowiedź 27 lipca 2020 przez Wiciorny Ekspert (270,190 p.)
A sprawdź dokładną ścieżke tego pliku przez relative path, bo być może ona uległa zmianie.
Sprwadź też hierarchie folderów, czy aby index.js nie jest   wyżej/niżej niż katalog docelowy przez co ścieżka mogłaby się zmienić. Docelowo poniżej głównego być powinien
komentarz 28 lipca 2020 przez Bakkit Dyskutant (7,600 p.)
Mam w edytorze kodu rozszerzenie, które samo mi pokazuje jaki plik jest w jakim folderze więc ścieżka na pewno dobra.

Podobne pytania

+5 głosów
3 odpowiedzi 2,178 wizyt
pytanie zadane 11 kwietnia 2017 w JavaScript przez jpacanowski VIP (101,940 p.)
0 głosów
2 odpowiedzi 447 wizyt
pytanie zadane 19 listopada 2016 w JavaScript przez eliano Gaduła (3,640 p.)
0 głosów
1 odpowiedź 266 wizyt

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...