我正在使用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或我的路由器或什么。
答案 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