Я работаю с сайтом, используя клиентские шаблоны через knockout.js.
API-интерфейс сервера и логин написаны в рельсах.
То, что я хочу сделать, - это поместить каждый HTML-шаблон на стороне клиента в отдельный файл, а затем поднять эти шаблоны на страницу с помощью шаблонов. Подобно тому, как файлы javascript поднимаются.
Итак, в моем приложении / assets есть каталог, который называется templates
Каждый шаблон в каталоге должен быть добавлен на страницу в теге скрипта с type = "text / html"
Я дошел до того, чтобы создать реальный контент шаблонов, теперь я просто хочу поместить его в файл html.erb в свойстве head.
Однако он всегда появляется в теле как обычный текст, а не как HTML.
Я определил следующий метод в моем контроллере:
def html_templates
output = ''
templates = Dir.glob 'app/assets/templates/*'
templates.each { |template|
file = File.open(template, "rb")
output += '<script type="text/html" id="'+(File.basename template, '.html')+'">'
output += file.read
output += '</script>'
}
return output
end
Я пытаюсь добавить его в файл макета .erb следующим образом:
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<%= html_templates %>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
И все же вывод всегда помещается в тело со всеми моими html-кодами.
Кроме того, если у кого-то есть лучшие решения, нужно решить эту проблему. Пожалуйста, порекомендуйте.