【问题标题】:How to Display Heroku hosted Ruby on Rails Shopify App Page on Shopify Storefront如何在 Shopify 店面显示 Heroku 托管的 Ruby on Rails Shopify 应用页面
【发布时间】:2017-05-12 00:50:05
【问题描述】:

我有一个托管在 Heroku 上的 Ruby on Rails 公共嵌入式 Shopify 应用程序。我正在尝试通过应用程序代理从我的应用程序中获取页面以显示在我的 Shopify 商店的前端。我已经在我的应用程序设置中设置了应用程序代理配置,但我可以显示的唯一页面是我的应用程序公共文件夹中的文件。但是,它们并未嵌入 Shopify 主题中。

我无法修改 .htaccess 文件以将内容类型设置为 application/liquid,因为该应用程序托管在 Heroku 上。我尝试使用控制器操作渲染文件并在那里设置内容类型:

def send
     filename = File.join(Rails.root, "/public/test.html")
     send_file(filename, :filename => "test.html", :type => 'application/liquid', :disposition => "inline")
  end   

但应用代理似乎根本无法识别控制器。因此,我也不能使用控制器来呈现 html.erb 文件。我究竟应该如何从我的 rails 应用程序中获取 html.erb 页面(或 html 页面)以显示在我的 shopify 主题中?

【问题讨论】:

  • 您是否尝试过手动访问控制器?你没有提到你是否验证了它们是否在工作......
  • 是的,我已经尝试手动访问控制器。当我使用我的 shopify 商店的管理面板(或者换句话说,将我的应用程序用作嵌入式应用程序)访问它们时,它们或多或少地工作。在管理面板中,我在帖子中包含的发送操作提供了 html 文件以供下载而不是呈现它,但我认为这又回到了无法设置内容类型的问题。

标签: ruby-on-rails ruby .htaccess heroku shopify


【解决方案1】:

我让它工作了。我的设置有几个问题。 send 操作在 Shopify 控制器 (ShopifyApp::AuthenticatedController) 中使用时有效,但在控制器中使用时,同样的操作返回“参数数量错误(给定 1,预期为 0)”错误继承自 ApplicationController。那里的修复是使参数对于该操作是可选的。我将“def send”更改为“def send(blank=nil)”。另外,我发送的是 html 文件而不是液体文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多