mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-12-19 03:52:25 -05:00
7c5a448f63
<% s=Time.now; main_app.categories_path main_app.guidelines_path main_app.tos_path main_app.privacy_path p (Time.now-s)*1000%> Returns 10-20ms consistently on i7-4770k, on shared hosts the cost could easily reach 40ms This code simply calculates the strings /categories /guidelines /tos /privacy It is ludicrous to spend this enormous amount of work just to calculate 4 strings. I do not know if this is something specific about Discourse or a bug in Rails (I tried without the main_app prefix and got similar results), regardless we can got to avoid these _path APIs for now Discovered this when running a flamegraph on our home page.
99 lines
3.2 KiB
Text
99 lines
3.2 KiB
Text
<!DOCTYPE html>
|
|
<html lang="<%= SiteSetting.default_locale %>" class="<%= html_classes %>">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title><%= content_for?(:title) ? yield(:title) + ' - ' + SiteSetting.title : SiteSetting.title %></title>
|
|
<meta name="description" content="<%= @description_meta || SiteSetting.site_description %>">
|
|
<%= render partial: "layouts/head" %>
|
|
<%= render partial: "common/special_font_face" %>
|
|
<%= render partial: "common/discourse_stylesheet" %>
|
|
<%= discourse_csrf_tags %>
|
|
|
|
<%- if SiteSetting.enable_escaped_fragments? %>
|
|
<meta name="fragment" content="!">
|
|
<%- end %>
|
|
|
|
<%- if shared_session_key %>
|
|
<meta name="shared_session_key" content="<%= shared_session_key %>">
|
|
<%- end %>
|
|
|
|
<%= script "preload_store" %>
|
|
<%= script "locales/#{I18n.locale}" %>
|
|
<%= script "ember_jquery" %>
|
|
<%= script "vendor" %>
|
|
<%= script "application" %>
|
|
<%- if staff? %>
|
|
<%= script "admin"%>
|
|
<%- end %>
|
|
|
|
<%- unless customization_disabled? %>
|
|
<%= raw SiteCustomization.custom_head_tag(session[:preview_style]) %>
|
|
<%- end %>
|
|
|
|
<%= render_google_universal_analytics_code %>
|
|
<link rel="manifest" href="<%= Discourse.base_uri %>/manifest.json">
|
|
|
|
<%= yield :head %>
|
|
</head>
|
|
|
|
<body>
|
|
<noscript data-path="<%= request.env['PATH_INFO'] %>">
|
|
<%= render partial: 'header' %>
|
|
<div id="main-outlet" class="wrap">
|
|
<!-- preload-content: -->
|
|
<%= yield %>
|
|
<!-- :preload-content -->
|
|
<footer>
|
|
<nav itemscope itemtype='http://schema.org/SiteNavigationElement'>
|
|
<a href='<%= path "/" %>'><%= t 'home_title' %></a>
|
|
<%= link_to t('js.filters.categories.title'), path("/categories") %>
|
|
<%= link_to t('guidelines_topic.title'), path("/guidelines") %>
|
|
<%= link_to t('tos_topic.title'), path("/tos") %>
|
|
<%= link_to t('privacy_topic.title'), path("privacy") %>
|
|
</nav>
|
|
</footer>
|
|
</div>
|
|
|
|
<footer id='noscript-footer'>
|
|
<p><%= t 'powered_by_html' %></p>
|
|
</footer>
|
|
</noscript>
|
|
|
|
<%- unless customization_disabled? || loading_admin? %>
|
|
<%= SiteCustomization.custom_header(session[:preview_style], mobile_view? ? :mobile : :desktop) %>
|
|
<%- end %>
|
|
|
|
<section id='main'>
|
|
</section>
|
|
|
|
<div id='offscreen-content'>
|
|
</div>
|
|
|
|
<% unless current_user %>
|
|
<form id='hidden-login-form' method="post" action="<%=main_app.login_path%>" style="display: none;">
|
|
<input name="username" type="text" id="signin_username">
|
|
<input name="password" type="password" id="signin_password">
|
|
<input name="redirect" type="hidden">
|
|
<input type="submit" id="signin-button" value="<%= t 'log_in' %>">
|
|
</form>
|
|
<% end %>
|
|
|
|
<%- if @preloaded.present? %>
|
|
<script>
|
|
<%- @preloaded.each do |key, json| %>
|
|
PreloadStore.store("<%= key %>",<%= escape_unicode(json) %>);
|
|
<% end %>
|
|
</script>
|
|
<%- end %>
|
|
|
|
<%= yield :data %>
|
|
|
|
<%= render :partial => "common/discourse_javascript" %>
|
|
|
|
<%= render_google_analytics_code %>
|
|
|
|
<%- unless customization_disabled? %>
|
|
<%= raw SiteCustomization.custom_body_tag(session[:preview_style]) %>
|
|
<%- end %>
|
|
</body>
|
|
</html>
|