当我尝试通过Apache提供我的ember应用程序时,我遇到了问题。因为位置设置为“历史”而不是“哈希”,所以Apache正在尝试加载不存在的魔术余烬路径作为文件。 myapp.com/login会抛出404,因为没有login.html。
我已经做了一些淘汰,并且令人惊讶的是,这并没有太多让我相信没有多少人在apache上部署ember应用程序。
所以建议我编写Apache URL Rewrite规则,但是我试过的那个规则似乎没有用。
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ index.html [L]
和
Options FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
不要工作。
除了回到“哈希”之外,有没有人知道该做什么?
问候,无能的人。
答案 0 :(得分:4)
您需要将所有内容路由到索引,但存在的文件除外:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.html#$1 [L]
答案 1 :(得分:0)
如果您可以返回哈希,可以将locationType设置为“hash”。
检查下一个答案: https://stackoverflow.com/a/28630973/4425050
我遇到了同样的问题,我用它修好了。