#angularjs #asp.net-mvc #razor #angular
#angularjs #asp.net-mvc #razor #angular
Вопрос:
Я пытаюсь загрузить модуль angular2 в файл cshtml. У меня загрузка работает с файлом html, поэтому я попытался скопировать все необходимые скрипты в файл cshtml, но он не загружается должным образом, так как не удается загрузить / app /main
Это исходный тег HTML-файла.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<script src="/node_modules/es6-shim/es6-shim.js"></script>
<script src="/node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="/node_modules/systemjs/dist/system.src.js"></script>
<script src="/node_modules/rxjs/bundles/Rx.js"></script>
<script src="/node_modules/angular2/bundles/angular2.dev.js"></script>
<script>
System.config({
packages: {
'app': {
defaultExtension: 'js'
}
},
});
System.import('/app/main').then(null, console.error.bind(console));
</script>
</head>
<body>
<div> </div>
</body>
</html>
<pm-app>
<div>
<p> Please wait ...</p>
</div>
</pm-app>
И появляется следующая ошибка:
Не удалось загрузить ресурс: сервер ответил со статусом 404 (не найден)
Я пробовал это с помощью cshtml со следующим кодом.
@{
ViewBag.Title = "Index";
}
<script src="~/node_modules/es6-shim/es6-shim.js"></script>
<script src="~/node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="~/node_modules/systemjs/dist/system.src.js"></script>
<script src="~/node_modules/rxjs/bundles/Rx.js"></script>
<script src="~/node_modules/angular2/bundles/angular2.dev.js"></script>
<script>
System.config({
packages: {
'app': {
defaultExtension: 'js'
}
},
});
System.import('/app/main').then(null, console.error.bind(console));
</script>
<h2>Index </h2>
<pm-app>Loading App ...</pm-app>
И появляется то же сообщение об ошибке. Я также пытался
1. поместите все скрипты в раздел заголовка страницы макета
2. Помещаем раздел рендеринга на страницу макета и добавляем раздел в файл index.cshtml.
Все три попытки выдали мне одно и то же сообщение об ошибке, поэтому мне было интересно, является ли это просто плохой практикой делать это таким образом (загрузка модуля angular в cshtml) или есть какое-либо исправление для этого.
Заранее спасибо за помощь.
Приветствия.
Комментарии:
1. Я предполагаю, что у вас неверный путь в
System.import('/app/main').then(null, console.error.bind(console));
2. Привет, Павел, спасибо за ваш вклад. Я считаю, что сам путь правильный, потому что index.html находится в корневом пути. И когда я добавляю .js, поэтому, когда он вызывает ‘/app/main.js ‘ , он ищет следующий js-файл, который является app.component. Похоже, что он не распознает конфигурацию расширения js.
3. Вам не хватает
<base>
тега, который вам понадобится позже для angular 2 для поиска объектов, я также не уверен, правильно ли оставлять основной параметр неопределенным для System.config. Попробуйтеpackages: { 'app': { main: '/app/main', defaultExtension: 'js' } }
, и тогдаSystem.import('app')
вам также может понадобиться карта в вашей конфигурации, поскольку карта предоставляет подсказки пути для системного загрузчика.4. Вам нужно открыть консоль вашего браузера и фактически посмотреть на путь, который он пытается получить с сервера.
Ответ №1:
Вы просто следуете этому https://www.youtube.com/watch?v=WA4dPYlRwrEamp;spfreload=5 скопируйте ваши библиотеки в _layout.cshtml
Комментарии:
1. Спасибо за ваш вклад, Phusanakiat. Я быстро взглянул и понял, что это для .net core. Я посмотрю поближе и дам вам знать, как я иду.