【发布时间】:2019-02-17 21:09:19
【问题描述】:
这不会在本地开发中发生,但是在部署到 Heroku 之后,如果我导航到我的应用程序的根页面,它会很好地加载,如果我单击“帖子”链接,它会以 html 格式加载我的所有帖子。但是,如果我通过在浏览器的 url 输入中键入 url 导航到同一页面,或者即使我只是单击刷新按钮,它也会加载 json 而不是 html。检查请求,我发现它没有发送任何查询参数(因此 json 没有分页),并且请求标头中没有 Content-Type。
更新
我尝试使用“api”在 rails 中命名我的路线,并在 ember 中更新 config/environment.js 中的 apiURL。现在,就像上面一样,如果我单击链接,它可以正常工作,但如果我键入 url 或刷新,但现在没有加载 json,没有加载任何内容,并且后端的错误是 No route matches [GET] "/posts"。所以我猜 ember 中的 link_to 没有在 url 中插入“api”
命名空间对我来说并不重要,我只是认为它可能会有所帮助。但也许它揭示了我对某人的根本问题?
另外,我发现了这个EMBER direct route URL access dont load data,它似乎与我的问题非常相似,所以我将发布一些相关代码:
// routes/posts.js
import Route from '@ember/routing/route';
export default Route.extend({
queryParams: {
page: {
refreshModel: true
},
limit: {
refreshModel: true
}
},
model(params) {
return this.store.query('post', {
filter: {
name: "categories.name",
op: "!=",
val: "Projects"
},
limit: params.limit,
page: params.page,
includes: [
"tags",
"categories"
]
});
}
});
// routes/post.js
import Route from '@ember/routing/route';
export default Route.extend({
model(params) {
return this.store.findRecord('post', params.post_id);
}
});
更新 2
这是我的 Rails 的路线文件
# config/routes.rb
Rails.application.routes.draw do
namespace :api do
resources :categories
resources :comments
resources :posts
end
get "*path", :to => redirect("index.html")
end
【问题讨论】:
-
你在使用任何 Heroku buildpacks 吗?
-
您能否详细说明您如何为您的 ember 资产提供服务
-
我只是将它们放在 Rails 应用程序的公共文件夹中。如果您要问的话,他们不在 CDN 上。要回答@mwp,我没有使用 Heroku Buildpack。只是自动选择的红宝石。
标签: ember.js