我有一个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 include标签时,它仍然会损坏。唯一可行的方法是删除两个标签。然后,React应用程序将呈现,但显然没有该应用程序所需的样式。
修改
我认为我正在做某事。如果删除application.css
内的所有内容,它将呈现。我认为应用程序CSS和webpacker CSS之间可能存在一些冲突。为什么webpacker没有内置CSS加载器并不清楚,而且CSS有点奇怪,可以使应用程序无法完全呈现。
我已将其简化为一行,*= require_tree .
显然破坏了应用程序。我...我不知道为什么。
可能的解决方案
请勿使用*= require_tree .
。手动地,我必须导入每个CSS文件。似乎很愚蠢。那好吧。
答案 0 :(得分:0)
道歉;这不是问题的完整答案,但我没有足够的声誉来发表简单的评论。转到图¯\ _(ツ)_ /¯。
关于为什么webpacker没有内置CSS加载器的内容,我们并不清楚。
只是想说明一下Webpacker 确实具有内置的CSS加载器。以下是默认加载程序的列表:https://github.com/rails/webpacker/blob/a2aa7399f4bc2b9ca2cd035bf456a78a054dba07/package/rules/index.js#L9-L14