当路由器有参数时,组件找不到index.html的样式

时间:2016-08-12 10:16:52

标签: angular parameters router

角度2.0.0-rc.4

当路由器有一个参数<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/pages/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> 时,我收到一条错误消息,如localhost:4200/component/parameter

不知道为什么在这种情况下会自动添加组件名称。 style.css位于index.html的全局目录中

在index.html中导入style.css

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:4200/(component name here)/style.css

我的路线

<link rel="stylesheet" type="text/css" href="style.css">

所以style.css在这里 - &gt; import { provideRouter, RouterConfig } from '@angular/router'; import { HomepageComponent } from './homepage/homepage.component'; import { LoginpageComponent } from './loginpage/loginpage.component'; import { RegisterpageComponent } from './registerpage/registerpage.component'; import { PostpageComponent } from './postpage/postpage.component'; import { TestComponent } from './test/test.component'; const routes: RouterConfig = [ { path: '', redirectTo: 'homepage', pathMatch: 'full' }, { path: 'homepage', component: HomepageComponent }, { path: 'login', component: LoginpageComponent }, { path: 'register', component: RegisterpageComponent }, { path: 'test/:text', component: TestComponent }, { path: 'post/:id', component: PostpageComponent } ]; export const routerProviders = [ provideRouter(routes) ];

当我转到http://localhost:4200/style.css时,我收到一条错误,它无法在http://localhost:4200/test/sometext

中找到style.css

我检查过如果没有参数,那么一切都很好。

1 个答案:

答案 0 :(得分:-1)

这甚至与Angular无关。您的问题来自相对和绝对路径表示法。您在链接标记中提供的路径是“style.css”,它是一个相对路径,因此您的浏览器将获取当前网址路径并在那里查找您的文件。为了使它工作,只需将你的href属性放在绝对值:

<link rel="stylesheet" type="text/css" href="/style.css">

或者,如果您的css文件不在您的Web服务器根目录

<link rel="stylesheet" type="text/css" href="/path/to/your/style.css">

一般来说,除特定情况外,避免使用相对路径。您可以在此处了解有关相对和绝对路径的更多信息Absolute and Relative URLs