我知道这是一个不好的问题,而且我没有代码,但我希望有人可以对此有所了解。
我有一个Angular网站。
该网站会加载不同产品的销售数据。产品名称显示在URL
中从网站链接到不同产品,网站运行良好。
如果我直接使用产品名称更新网址并按Enter键,则网站不会重新加载。我必须选择whoile URL并再次按Enter键以重新加载页面。
有谁能想到为什么会发生这种情况?
答案 0 :(得分:1)
您需要一种方法告诉服务器您输入的URL是有效的Angular路由。因此,您需要将这些URL映射到index.html。
因为我在后端使用Java / Spring。我就是这样做的。这解决了这个问题:
@Controller
public class Routing {
@RequestMapping({"/resources/**"})
public String api(final HttpServletRequest request){
String path = (String) request.getAttribute(
HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
return path;
}
@RequestMapping({ "", "/login", "/products/**" })
public String gui() {
return "forward:/index.html";
}
}
这里第一种方法只返回以“/ resources / **”开头的路径,因为在此路径下,我的所有REST API都可用。第二种方法转发到index.html用于Angular路由。
请注意,转发到index.html不会更改浏览器地址栏上的URL,但会触发Angular来控制。