我有一个使用Angular 4的ASP.NET MVC应用程序。在我的布局中,我有一个基本标记,如下所示:
<base href="/src/">
我正在设置所有内容,我刚刚添加了Angular Routing。现在,在我的基本组件加载后,我的网址附加了&#39; src&#39;。
这是我的路线档案:
import { Routes } from '@angular/router';
import { HomeComponent } from './Components/Home/home.component';
export const AppRouting: Routes = [
{ path: '', component: HomeComponent }
];
在添加路由之前我没有看到这个。
答案 0 :(得分:1)
基本标记的主要用途是用于路由。这来自文档:
大多数路由应用程序都应该添加一个元素 index.html作为标记中的第一个子节点告诉路由器如何 撰写导航网址。
如果app文件夹是应用程序根目录,则与样本一样 应用程序,完全按照此处所示设置href值。
https://angular.io/guide/router#base-href
在开发时,它通常设置为“/”,因此路由将从root运行。在部署时,将其更改为包含应用程序的服务器上的文件夹。
答案 1 :(得分:1)
我能解决这个问题。作为参考,我的app文件夹位于src目录下,而不是在我的项目的根目录下。这就是我所做的。
将基本标记更改为:
<base href="/">
从以下网址更新我的main.js电话:
<script>
System.import('main.js').catch(function (err) { console.error(err); });
</script>
为:
<script>
System.import('src/main.js').catch(function (err) { console.error(err); });
</script>
然后在我的systemjs.config.js中,我不得不改变这些行:
map: {
//app is within the app folder
'app': 'app',
为:
map: {
//app is within the app folder
'app': 'src/app',
我也不得不改变:
packages: {
app: {
defaultExtension: 'js',
meta: {
'./*.js': {
loader: 'systemjs-angular-loader.js'
}
}
},
为:
packages: {
app: {
defaultExtension: 'js',
meta: {
'./*.js': {
loader: 'src/systemjs-angular-loader.js'
}
}
},