我有一个独立运行的 ember 应用程序,我能够运行服务器并查看它。然后我跑了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
最佳答案
如果您在浏览器中直接使用 file://...
打开现代 SPA 的起始 html,它几乎无法工作。浏览器对待从本地文件系统打开的文件不同于服务器发送的 html。
所以您应该做的是始终使用网络服务器将文件部署到浏览器。在典型的 ember 应用程序中,您还应该将应用程序部署到根文件夹,并将您的网络服务器配置为在没有其他文件与请求的路径匹配时始终发送 index.html
,以便 ember 路由器可以开始做自己的路由。
这可以在几乎所有 网络服务器中完成,例如 apache、nginx、IIS 和其他任何东西。但是如何在特殊的网络服务器上执行此操作不是关于 ember 的问题,而是关于该网络服务器的问题。
关于javascript - Ember Build 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37818884/