我相信这是一个简单的问题,但我找不到答案或至少在搜索中使用正确的术语.
我正在Angular2和我们Springboot一起建立.默认情况下,Angular将使用localhost:8080\dashboard和等路径localhost:8080\dashboard\detail.
如果可能的话,我想避免使用路径作为哈希.正如Angular 文档所述:
路由器的provideRouter函数将LocationStrategy设置为PathLocationStrategy,使其成为默认策略.如果我们愿意,我们可以在引导过程中使用覆盖切换到HashLocationStrategy.
然后...
几乎所有Angular 2项目都应使用默认的HTML 5样式.它生成的URL更易于用户理解.它保留了以后进行服务器端渲染的选项.
问题在于,当我尝试访问时localhost:8080\dashboard,Spring会寻找一些控制器映射到这条路径,它不会有.
Whitelabel Error Page
There was an unexpected error (type=Not Found, status=404).
No message available
Run Code Online (Sandbox Code Playgroud)
我认为最初是为了让我的所有服务都处于不足localhost:8080\api之下localhost:8080\app.但是,如何告诉Spring忽略对此app路径的请求?
Angular2或Boot有更好的解决方案吗?
在我的Spring Boot应用程序中,我正在尝试配置自定义错误页面,例如对于404,我在应用程序配置中添加了以下Bean:
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404.html"));
}
};
}
Run Code Online (Sandbox Code Playgroud)
另外,我创建了以下简单的Thymeleaf模板:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<title>404 Not Found</title>
<meta charset="utf-8" />
</head>
<body>
<h3>404 Not Found</h3>
<h1 th:text="${errorCode}">404</h1>
<p th:utext="${errorMessage}">Error java.lang.NullPointerException</p>
<a href="/" th:href="@{/}">Back to Home Page</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
并将其添加到/resources/templates/文件夹中.就在404错误我只能看到白屏.
我做错了什么以及如何正确设置我的404页面?此外,是否可以使用模板而不仅仅是自定义错误页面的静态页面?
我$routeProvider的配置如下:
teachApp.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.
when('/teach/', {templateUrl: 'views/login_view.html'}).
when('/teach/overview', {templateUrl: 'views/overview_view.html'}).
when('/teach/users', {templateUrl: 'views/users_view.html'}).
otherwise({redirectTo: '/teach/'});
$locationProvider.html5Mode(true);
}]);
Run Code Online (Sandbox Code Playgroud)
在应用程序中,如果我点击链接,例如<a href="/teach/overview">Overview</a>,概述部分显示为预期.但是,当我手动将地址栏中的URL更改为完全相同的URL时,我收到404错误.被$routeProvider配置不正确?
我正在使用MAMP localhost和应用程序的根URL http://localhost/teach/
我有一个Angular 4(ES6)应用程序,我想从Spring Boot应用程序提供服务.我的Angular应用程序有一个index.html,当http:// localhost:8080的地址被命中时,Spring Boot知道要映射到在Angular中映射到"/ search"的index.html文件.
但是,我有另一条名为"adminlogin"的路线,我将通过该途径访问
但在这个例子中,它命中了我的Spring Boot应用程序,它没有映射,然后抛出错误.
如何获取http:// localhost:8080/adminLogin的地址转到我的Angular应用程序?
我目前正在使用一个项目,在后端使用SpringBoot,在前端使用HTML5和Angular 2.
部署项目后,当我在浏览器中导航时,一切正常,直到我按下重新加载按钮.浏览器将显示错误页面.
白标错误页面
此应用程序没有/ error的显式映射,因此您将此视为回退.
2017年5月8日星期一10:16:14 CDT 2017
出现意外错误(type = Not Found,status = 404).
没有可用的消息
这显然是由于使用HTML 5历史记录API在浏览器URL中存储客户端导航.
因此,当我开始点击页面上的项目时,我看到URL会自动附加.
但是,当点击刷新时,这将成为一个问题,完整的附加URL将发送到无法理解它的服务器,因为该附加URL的特定映射不存在.
是否有修复此更新服务器端配置,以便任何未知的URL返回根index.html视图的视图?
例如,当我点击刷新时,被查询的URL只是根URL http://localhost:8080/root,而不是附加的URL.
这将使浏览器正确导航而不是尝试在服务器端执行此操作.
我已经构建了一个包括 Angluar5 的 Springboot 应用程序。我有一个 gradle 构建脚本,它将角度文件加载到我的 springboot 项目中。这些文件位于我的 springboot 项目的资源/静态下。当我启动我的应用程序时,angular 的路由不再起作用,我得到
错误:无法匹配任何路由。URL 段:'访问'
我的项目结构:
我使用以下语句部署了我的 angular 应用程序:
ng build --deploy-url=BeatAcknowledgeTest --op=../backend/src/main/resources/static
这将使我的静态文件可以通过以下链接访问:
www.mySite.com/BeatAcknowledgeTest/...
如果我输入
www.mySite.com/BeatAcknowledgeTest/access
页面呈现,一切都很好,但是当我在另一个组件中时,例如
www.mySite.com/BeatAcknowledgeTest/home
然后我点击一个按钮,将我路由到
www.mySite.com/BeatAcknowledgeTest/access
我收到一个错误,我的应用程序没有重定向。
有什么建议?
spring-boot ×5
angular ×4
java ×2
spring ×2
angularjs ×1
apache ×1
html5 ×1
javascript ×1
routing ×1
spring-mvc ×1
thymeleaf ×1