我建设使用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未发现的错误。 目前我把资产文件进店的主题,这似乎并不理想。
不要跳过布局
如果你想插入自己的JS和主题的CSS里面<head>
与所有其他人,不要设置layout: false
。 Shopify会抓住你的资产追加到主题。
404可能的原因:错误的资产主机
看看将要返回一个404的请求,并确认资产主机是自己的自定义或Heroku的领域,而不是Shopify商店的域名。 这里是你如何检查:
- 打开你喜欢的浏览器,打开开发工具,然后进入“网络”选项卡。
- 找到您的JS和CSS 404个请求。
- 如果请求要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应用程序。
希望这可以帮助!