У меня есть приложение на Rails 5.2, в котором есть очень странная ошибка, из-за которой, если я добавлю тег стилей или тег javascript, он вообще ничего не отобразит без ошибок или сообщений об ошибках в консоли.
Полностью пустой макет:
<!DOCTYPE html>
<html>
<head>
<title>App</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<%= yield %>
</body>
</html>
Фактический объем производства:
<html><head></head><body></body></html>
Я могу это исправить, сделав:
<!DOCTYPE html>
<html>
<head>
<title>App</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
</head>
<body>
<%= yield %>
</body>
</html>
Идеи
Предполагается, что доходность составляет <%= javascript_pack_tag 'landing_app' %>
И когда я просто удаляю тег включения javascript, он все равно будет сломан. Единственный раз, когда это работает, если я удаляю оба тега Тогда приложение React будет рендериться, но без стилей, которые мне нужны для приложения.
- У меня нет настроек кэширования.
- Я удалил каталог tmp.
- Я пытался удалить турболинки.
- Я добавил тег h1 в макет, и это все еще
не будет печатать.
- Я пытался отключить загрузчики CSS и JS для веб-упаковщика
- Я пытался удалить public / packs
Редактировать
Я думаю, что я к чему-то. Если я удалю все внутри application.css
, он будет отображаться. Я думаю, что может быть некоторый конфликт между CSS приложения и CSS веб-упаковщика. Нет большой ясности в том, почему в webpacker не встроены загрузчики CSS. Кроме того, довольно странно, что CSS может полностью оторвать приложение от рендеринга.
Я сократил его до одной строки, *= require_tree .
, очевидно, ломает приложение. Я ... я понятия не имею, почему.
Возможное решение
Не используйте *= require_tree .
. Вручную, мне приходится импортировать каждый CSS-файл. Кажется глупым. Ну что ж.