Shopify应用程序 - 如何将资产使用的应用程序代理与Ruby on Rails的(Shopif

2019-10-30 04:38发布

我建设使用Ruby on Rails的一个shopify应用程序代理。 我使用的是shopify_app宝石。

在我的控制器动作,我有如下设置:

render layout: false, content_type: ‘application/liquid’

,从而使应用程序嵌入到店的布局/ theme.liquid内。

我的问题是我如何再拉资产注入的应用程序? 我尝试手动包括他们到使用该模板文件:

<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>


<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

但很可惜,我得到404未发现的错误。 目前我把资产文件进店的主题,这似乎并不理想。

Answer 1:

不要跳过布局

如果你想插入自己的JS和主题的CSS里面<head>与所有其他人,不要设置layout: false 。 Shopify会抓住你的资产追加到主题。

404可能的原因:错误的资产主机

看看将要返回一个404的请求,并确认资产主机是自己的自定义或Heroku的领域,而不是Shopify商店的域名。 这里是你如何检查:

  1. 打开你喜欢的浏览器,打开开发工具,然后进入“网络”选项卡。
  2. 找到您的JS和CSS 404个请求。
  3. 如果请求要https://the-shopify-store-domain.com/assets/application-3b57310f71432b97ccf86f51aawtert735dwtertbd9783ed06a5296871536a24.css ,那意味着它寻找错误的域资产。 相反,它应该发出请求以自己的域名,如: https://your-own-name.herokuapp.com/assets/application-3b57310f71432b97ccf86f51aawtert735dwtertbd9783ed06a5296871536a24.css

由于这是一个代理程序,主域得到更新到Shopify商店的域名,而不是原始来源。 所以,你必须是具体的讲自己的财产的存储位置。 幸运的是,你可以很容易地在Rails中通过改变资产主机配置到自己的主机做到这一点:

config.action_controller.asset_host = "https://your-custom-domain-or-herokuapp-domain.com"

提示:此设置被注释掉默认情况下,在production.rb文件一个新的Rails应用程序。

希望这可以帮助!



文章来源: Shopify app - how to include assets using an app-proxy with ruby on rails