我有一个独立运行的余烬应用程序,我能够运行服务器并查看它。然后我运行了ember build
,并在浏览器中打开了/dist/index.html。我无法在/ dist / assets文件夹中加载任何css或js,而是查看我的根文件系统。我打开了index.html并注释掉了<base href='/'>
。在这之后我能够加载css和js。但是,我遇到了安全问题。我在这个构建过程中做错了什么,我是否应该评论<base href='/'>
?
我收到的安全问题是Uncaught SecurityError: Failed to execute 'replaceState' on 'History': A history state object with URL
答案 0 :(得分:1)
如果您在浏览器中使用file://...
直接打开现代SPA的启动html,它几乎不会起作用。浏览器处理从本地文件系统打开的文件与服务器发送的html不同。
所以应该做的事情总是使用网络服务器将文件部署到浏览器。在典型的ember应用程序中,您还应该将应用程序部署到根文件夹,并将您的Web服务器配置为在没有其他文件与请求的路径匹配时始终发送index.html
,以便ember路由器可以开始执行自己的路由
这可以在几乎的每个网络服务器中完成,例如apache,nginx,IIS和其他任何内容。但是如何在特殊的网络服务器上执行此操作不是关于ember而是关于该网络服务器的问题。