代码之家  ›  专栏  ›  技术社区  ›  Alfredo Pantoja

Shopify应用程序-如何使用ruby on rails上的应用程序代理包含资产

  •  0
  • Alfredo Pantoja  · 技术社区  · 7 年前

    我正在使用ruby on rails构建shopify应用程序代理。我正在使用shopify\u应用程序gem。

    在我的控制器操作中,我有以下设置:

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

    ,以便应用程序嵌入到商店的布局/主题中。液体

    我的问题是如何将资产拉入应用程序?我尝试使用以下方法将它们手动包含到模板文件中:

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

    但唉,我得到404找不到的错误。目前,我正在将资产文件放入商店主题中,这似乎并不理想。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Matias Fernandez    7 年前

    不要跳过布局

    如果您想在主题的 <head> 和其他人一起,不要 layout: false .Shopify会将您的资产添加到主题中。

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

    查看返回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"
    

    提示:默认情况下,此设置在生产环境中的新rails应用程序上被注释掉。rb文件。

    希望这有帮助!