Приложение Shopify - как включить ресурсы с помощью прокси приложения с ruby ​​на рельсах - PullRequest
0 голосов
/ 04 мая 2018

Я создаю app-прокси shopify, используя ruby ​​на рельсах. Я использую драгоценность 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 не найденных ошибок. в настоящее время я добавляю файлы активов в тему магазина, которая не кажется идеальной.

1 Ответ

0 голосов
/ 07 июня 2018

Не пропустите макет

Если вы хотите вставить свои 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 , то это означает, что * ищет активы неправильно в *1023* 1024 * домен. Вместо этого он должен выполнять запросы к вашему собственному домену, например: 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 в файле production.rb.

Надеюсь, это поможет!

...