在 nginx 错误 495(错误的客户端证书)上从 Rails 资产管道提供样式表?
Serve stylesheet from Rails asset pipeline on nginx error 495 (bad client certificate)?
我有一个基本的 Rails 应用程序布局,
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_include_tag 'application' %>
使用 nginx,我要求一个可选的客户端证书:
ssl on;
ssl_verify_client optional;
当客户端连接到错误的证书(例如,已过期、尚未生效或不受信任)时,nginx 会通过通用页面读取进行微弱响应,"The SSL certificate error"。
为了提供合理的用户体验,我告诉nginx:
error_page 495 /actual_useful_information.html;
但现在我丢失了我的样式表和 javascripts,因为当浏览器加载页面并跟随 Rails 布局的链接时,证书仍然是错误的并且样式表没有出现.
是否有解决方案可以使用布局为样式化页面提供服务?有没有办法内联资产管道(仅针对这种情况)?
里面有 javascript 也不错,但至少,样式怎么样。
我找到了自己的答案:
<% if @inline_assets %>
<script><%== File.read("public#{javascript_path('application')}") %></script>
<style><%== File.read("public#{stylesheet_path('application')}") %></style>
<% else %>
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_include_tag 'application' %>
<% end %>
我有一个基本的 Rails 应用程序布局,
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_include_tag 'application' %>
使用 nginx,我要求一个可选的客户端证书:
ssl on;
ssl_verify_client optional;
当客户端连接到错误的证书(例如,已过期、尚未生效或不受信任)时,nginx 会通过通用页面读取进行微弱响应,"The SSL certificate error"。
为了提供合理的用户体验,我告诉nginx:
error_page 495 /actual_useful_information.html;
但现在我丢失了我的样式表和 javascripts,因为当浏览器加载页面并跟随 Rails 布局的链接时,证书仍然是错误的并且样式表没有出现.
是否有解决方案可以使用布局为样式化页面提供服务?有没有办法内联资产管道(仅针对这种情况)?
里面有 javascript 也不错,但至少,样式怎么样。
我找到了自己的答案:
<% if @inline_assets %>
<script><%== File.read("public#{javascript_path('application')}") %></script>
<style><%== File.read("public#{stylesheet_path('application')}") %></style>
<% else %>
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_include_tag 'application' %>
<% end %>