Ember和htaccess用于刷新

时间:2016-08-17 22:06:04

标签: javascript .htaccess ember.js firebase ember-cli

我正在使用Ember 2.6应用程序,并且在刷新页面时遇到了麻烦。这看起来是一个常见问题,因此我找到并更新了我的.htaccess文件,如下所示:

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>

每当我刷新像http://danyuschick.com/projects

这样的网址时,这都适用

但是,每当我刷新时,它都不会加载:http://danyuschick.com/projects/14

这是我的路由器:

Router.map(function() {
  this.route('about');
  this.route('blogs');
  this.route('projects', function() {
      this.route('index', { path: '/' });
      this.route('project', { path: '/:project_id' });
  });
  this.route('error', { path: '*path' });
  this.route('loading');
});

我定义模型的路线

model(params) {
    return this.store.findRecord('projects', params.project_id);
}

我不确定需要进行此更新的位置,htaccess或我的路由器或什么。

1 个答案:

答案 0 :(得分:0)

如果您尝试这样做,它应该有效:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) /index.html [NC,L]

它的作用是检查%{REQUEST_FILENAME}是一个大小的文件,OR是一个符号链接,还是一个目录。如果没有,它会将请求重写为index.html