Файлы библиотеки Angularjs и начальной загрузки не найдены (404) http-serve - PullRequest
0 голосов
/ 29 июня 2019

Я создаю небольшое приложение для изучения angularjs и установки его и других зависимостей с помощью npm. Для обслуживания приложения я установил пакет http-сервера через npm локально. Моя структура каталогов приложения выглядит так

restaurant> app, node_modules, package.json

Папка приложения выглядит как

app> index.html, app.js

Внутри моего index.html я пытался ссылаться на файлы angular.min.js и начальной загрузки css из node_modules, например, так:

<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
<script src="../node_modules/angular/angular.min.js"></script>
<script src="../app.js"></script>
<script src="../node_modules/bootstrap/dist/js/bootstrap.min.js>"></script>

Внутри app.js я объявил модуль angularjs, чтобы я мог распечатать результат интерполяции из моего файла index.html.

package.json:

{
  "name": "restaurant",
  "version": "1.0.0",
  "description": "An AngularJS app for Restaurants",
  "author": "",
  "license": "MIT",
  "devDependencies": {
    "http-server": "^0.11.1"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "http-server -a localhost -p 4000 ./app"
  },
  "dependencies": {
    "angular": "^1.7.8",
    "bootstrap": "^4.3.1"
  }
}

Когда я запускаю npm start и захожу на localhost: 4000 / index.html, он говорит

GET http://localhost:4000/node_modules/bootstrap/dist/css/bootstrap.min.css net::ERR_ABORTED 404 (Not Found)
index.html:4

GET http://localhost:4000/node_modules/angular/angular.min.js net::ERR_ABORTED 404 (Not Found)
app.js:1 Uncaught ReferenceError: angular is not defined
    at app.js:1
(anonymous) @ app.js:1
index.html:6 GET

http://localhost:4000/node_modules/bootstrap/dist/js/bootstrap.min.js%3E net::ERR_ABORTED 404 (Not Found)

У меня вопрос: нужно ли мне писать какую-то команду внутри моего пакета, чтобы скопировать angularjs и другие библиотечные файлы в какую-то другую папку в каталоге моего приложения?

Если нет, то почему localhost: 4000 / index.html не может найти эти файлы?

TIA для любых решений.

1 Ответ

0 голосов
/ 29 июня 2019

Вы просите веб-сервер обслуживать все в каталоге app.Итак, на веб-сервере root в каталоге app.Таким образом, только два файла, которые могут быть обработаны, это /index.html (который сервер находит в своем корневом каталоге: app) и /app.js (который он также находит в своем корневом каталоге app).

Корень по определению является корнем.Нет ничего выше корня, иначе он не был бы корнем.Поэтому спрашивать ../anything, когда вы уже находитесь в корне, бессмысленно.

Примечание: AngularJS - это по сути официально заброшенный фреймворк.Он по-прежнему поддерживается (исправлены только ошибки безопасности, см. https://docs.angularjs.org/misc/version-support-status) в течение нескольких месяцев, а затем он закончен. Почему вы изучаете заброшенную конструкцию?

...