首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solidus API路由

Solidus API路由
EN

Stack Overflow用户
提问于 2019-01-25 20:55:27
回答 1查看 469关注 0票数 0

现在,我正在查看管理界面中的编辑产品视图,但每次我尝试查找选项类型时,我的api都返回404。这似乎是因为Select2命中了以下url:/ecommerce/api/option_types?... (故意不包括实际的查询),尽管我的actual应该是/store/api/,因为我的routes.rb文件中有以下内容:mount Spree::Core::Engine, at: '/store'

我确认当我在routes.rb文件中将代码临时切换为mount Spree::Core::Engine, at: '/ecommerce'时,我的选项类型正确地显示在select2选择框中。

我唯一的猜测是,在这个项目的早期,我已经在/ecommerce (即mount Spree::Core::Engine, at: '/ecommerce')安装了spree引擎。但后来我更改了代码以将其挂载到store,之后重启了终端中的rails服务器,并确保硬刷新浏览器(以防出现缓存问题),但select2表单仍然命中了错误的路径(/ecommerce/api/option_types?...)。

我试着挖掘源代码,但它变得非常密集,很快就有了select2和它的js以及所有的东西,哈哈。

有没有关于如何修复这个问题的猜测?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-29 01:09:51

一开始,我无法重现这个问题。但后来我想通了。这个问题是由rails缓存资产引起的……您只需删除tmp/cache/assets/目录的内容即可解决此问题。

为什么会发生这个问题?JS API调用后端使用的路由定义并存储在JS object Spree.routes中,您可以在浏览器javascript控制台查看其内容。

这些URL前缀来自core/app/assets/javascripts/spree.js.erb中定义的Spree.pathFor

代码语言:javascript
复制
Spree.mountedAt = function() {
  return "<%= Rails.application.routes.url_helpers.spree_path(trailing_slash: true) %>";
};

当您更改狂欢挂载路径时,Rails.application.routes.url_helpers.spree_path会发生变化,而这个JS文件一旦生成,就不会发生变化,因为它的MD5校验和仍然是相同的。因此,将使用tmp/cache/assets/目录中的缓存版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54365754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档