22require "sinatra/activerecord"
33require "sinatra/flash"
44require "sinatra/contrib/all"
5+ require "sinatra/assetpack"
56require "json"
67require "i18n"
78require "will_paginate"
@@ -17,6 +18,7 @@ class Stringer < Sinatra::Base
1718 set :database_file , "config/database.yml"
1819 set :views , "app/views"
1920 set :public_dir , "app/public"
21+ set :root , File . dirname ( __FILE__ )
2022
2123 enable :sessions
2224 set :session_secret , ENV [ "SECRET_TOKEN" ] || "secret!"
@@ -25,6 +27,7 @@ class Stringer < Sinatra::Base
2527 register Sinatra ::ActiveRecordExtension
2628 register Sinatra ::Flash
2729 register Sinatra ::Contrib
30+ register Sinatra ::AssetPack
2831
2932 ActiveRecord ::Base . include_root_in_json = false
3033 end
@@ -49,6 +52,35 @@ def t(*args)
4952 end
5053 end
5154
55+ assets {
56+ serve "/js" , from : "app/public/js"
57+ serve "/css" , from : "app/public/css"
58+ serve "/images" , from : "app/public/img"
59+
60+ js :application , "/js/application.js" , [
61+ "/js/jquery-min.js" ,
62+ "/js/bootstrap-min.js" ,
63+ "/js/bootstrap.file-input.js" ,
64+ "/js/mousetrap-min.js" ,
65+ "/js/underscore-min.js" ,
66+ "/js/backbone-min.js" ,
67+ "/js/app.js"
68+ ]
69+
70+ css :application , "/css/application.css" , [
71+ "/css/bootstrap-min.css" ,
72+ "/css/flat-ui-no-icons.css" ,
73+ "/css/font-awesome-min.css" ,
74+ "/css/styles.css"
75+ ]
76+
77+ js_compression :uglify
78+ css_compression :simple
79+
80+ prebuild true
81+ cache_dynamic_assets true
82+ }
83+
5284 before do
5385 I18n . locale = ENV [ "LOCALE" ] . blank? ? :en : ENV [ "LOCALE" ] . to_sym
5486
0 commit comments