user6691484
user6691484

Reputation:

Use Bootstrap in kemal app

I'm creating app in crystal-lang with kemal the web framework.

How can I use style.css or Bootstrap files in the app template in kemal?

I also tried the full path but this did not work, too. No style will be loaded.

Here is my standard.ecr (layout file)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
  <title><%= title %> | Crystal Website</title>

  <!-- Bootstrap -->
  <link href="../public/css/bootstrap.css" rel="stylesheet">

  <link href="/css/style.css" rel="stylesheet">

  <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->
</head>
<body>
<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-fixed-top">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Crystal Website</a>
    </div>
    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav navbar-right">
        <li
        <% if env.request.path == "/" %>class="active"
        <% end %>><a href="/">Home</a></li>
        <li
        <% if env.request.path == "/about" %>class="active"
        <% end %>><a href="/about">About</a></li>
        <li
        <% if env.request.path == "/contact" %>class="active"
        <% end %>><a href="/contact"> Contact</a></li>
      </ul>
    </div><!--/.nav-collapse -->
  </div>
</nav>

<div class="container">
  <%= content %>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="/js/bootstrap.js"></script>
</body>
</html>

Upvotes: 0

Views: 195

Answers (1)

Serdar Dogruyol
Serdar Dogruyol

Reputation: 5157

By default your public folder should be in /public path and not in /src/public.

Here's the folder structure

- public
  - css
    - bootstrap.css
- src
  - myapp.cr
  - views
    - layout
      - standard.ecr   

Upvotes: 1

Related Questions