ember 演示 ember-cli-mirage 在没有后端的服务器上无法运行
ember demo ember-cli-mirage doesn't work on server without backend
我正在准备我的新 ember 应用程序的演示,暂时将其部署到静态 http 服务器,没有适当的后端。
我已将项目配置为从 Mirage 获取数据,它在本地运行良好。
问题是当我把它上传到我的http服务器时,海市蜃楼似乎没有工作,演示提出:
vendor-1bce2a3….js:11 Error while processing route: activities Ember Data Request GET /activities returned a 404
Payload (text/html)
[Omitted Lengthy HTML] Error: Ember Data Request GET /activities returned a 404
Payload (text/html)
[Omitted Lengthy HTML]
at new Error (native)
at Error.r (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:8:14790)
at Error.n (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:19:25963)
at e.default.r.default.extend.handleResponse (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:22:29329)
at c.error (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:22:29898)
at u (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:2:9669)
at Object.c.fireWith (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:2:10437)
at n (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:3:13352)
at XMLHttpRequest.<anonymous> (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:3:19180)
这是我的海市蜃楼配置:
// app/mirage/config.js
export default function() {
this.get('/activities', function(db, request) {
return { 'activity': db.activity };
});
this.get('/activities/:id', function(db, request) {
var id = request.params.id;
return { 'activity': db.activity.find(id) };
});
}
它可以在我的本地机器上找到,但它不能在 http 服务器上工作,关于如何让演示工作的任何想法?
谢谢,
默认情况下,production
构建中禁用 Mirage。您可以使用 ENV 选项启用它:
// app/config/environment.js
...
if (environment === 'production') {
ENV['ember-cli-mirage'] = {
enabled: true
}
}
有关详细信息,请参阅文档:http://www.ember-cli-mirage.com/docs/v0.1.x/server-configuration/#enabled
既然你说你可以使用 PHP 你可能正在使用 Apache 并且需要改变它处理请求的方式以使用 html5 pushState ... 如果你还没有在您的 /myproject
目录中创建一个 .htaccess
文件,创建它并使其包含:
FallbackResource /myproject/index.html
这将使 Apache 将任何对不存在的事物的请求(通常会导致 404)传递到指定的路径...
我正在准备我的新 ember 应用程序的演示,暂时将其部署到静态 http 服务器,没有适当的后端。
我已将项目配置为从 Mirage 获取数据,它在本地运行良好。
问题是当我把它上传到我的http服务器时,海市蜃楼似乎没有工作,演示提出:
vendor-1bce2a3….js:11 Error while processing route: activities Ember Data Request GET /activities returned a 404
Payload (text/html)
[Omitted Lengthy HTML] Error: Ember Data Request GET /activities returned a 404
Payload (text/html)
[Omitted Lengthy HTML]
at new Error (native)
at Error.r (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:8:14790)
at Error.n (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:19:25963)
at e.default.r.default.extend.handleResponse (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:22:29329)
at c.error (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:22:29898)
at u (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:2:9669)
at Object.c.fireWith (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:2:10437)
at n (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:3:13352)
at XMLHttpRequest.<anonymous> (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:3:19180)
这是我的海市蜃楼配置:
// app/mirage/config.js
export default function() {
this.get('/activities', function(db, request) {
return { 'activity': db.activity };
});
this.get('/activities/:id', function(db, request) {
var id = request.params.id;
return { 'activity': db.activity.find(id) };
});
}
它可以在我的本地机器上找到,但它不能在 http 服务器上工作,关于如何让演示工作的任何想法?
谢谢,
默认情况下,production
构建中禁用 Mirage。您可以使用 ENV 选项启用它:
// app/config/environment.js
...
if (environment === 'production') {
ENV['ember-cli-mirage'] = {
enabled: true
}
}
有关详细信息,请参阅文档:http://www.ember-cli-mirage.com/docs/v0.1.x/server-configuration/#enabled
既然你说你可以使用 PHP 你可能正在使用 Apache 并且需要改变它处理请求的方式以使用 html5 pushState ... 如果你还没有在您的 /myproject
目录中创建一个 .htaccess
文件,创建它并使其包含:
FallbackResource /myproject/index.html
这将使 Apache 将任何对不存在的事物的请求(通常会导致 404)传递到指定的路径...