mirror of https://github.com/statping/statping
CDN asset changes, SCSS entry file change
parent
8e603ceda0
commit
ae25e84128
|
@ -135,7 +135,7 @@ func sassCli() error {
|
|||
if err := source.Assets(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := source.CompileSASS(source.DefaultScss...); err != nil {
|
||||
if err := source.CompileSASS(); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
|
|
|
@ -43,8 +43,8 @@
|
|||
<meta property="twitter:image" content="favicon/social.png">
|
||||
|
||||
{{if USE_CDN}}
|
||||
<link rel="stylesheet" href="https://assets.statping.com/style.css">
|
||||
<link rel="stylesheet" href="https://assets.statping.com/main.css">
|
||||
<link rel="stylesheet" href="https://assets.statping.com/css/style.css">
|
||||
<link rel="stylesheet" href="https://assets.statping.com/css/main.css">
|
||||
{{else if USING_ASSETS }}
|
||||
<link href="css/style.css" rel="stylesheet">
|
||||
<link href="css/main.css" rel="stylesheet">
|
||||
|
@ -52,7 +52,6 @@
|
|||
<% _.each(htmlWebpackPlugin.tags.headTags, function(headTag) { %>
|
||||
<%= headTag %> <% }) %>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
|
@ -62,10 +61,10 @@
|
|||
<div id="app" class="statping_container"></div>
|
||||
|
||||
{{if USE_CDN}}
|
||||
<script src="https://assets.statping.com/bundle.js"></script>
|
||||
<script src="https://assets.statping.com/polyfill.chunk.js"></script>
|
||||
<script src="https://assets.statping.com/style.chunk.js"></script>
|
||||
<script src="https://assets.statping.com/main.chunk.js"></script>
|
||||
<script src="https://assets.statping.com/js/bundle.js"></script>
|
||||
<script src="https://assets.statping.com/js/polyfill.chunk.js"></script>
|
||||
<script src="https://assets.statping.com/js/style.chunk.js"></script>
|
||||
<script src="https://assets.statping.com/js/main.chunk.js"></script>
|
||||
{{else if USING_ASSETS }}
|
||||
<script src="js/bundle.js"></script>
|
||||
<script src="js/polyfill.chunk.js"></script>
|
||||
|
|
|
@ -96,7 +96,7 @@ func apiThemeSaveHandler(w http.ResponseWriter, r *http.Request) {
|
|||
sendErrorJson(err, w, r)
|
||||
return
|
||||
}
|
||||
if err := source.CompileSASS(source.DefaultScss...); err != nil {
|
||||
if err := source.CompileSASS(); err != nil {
|
||||
sendErrorJson(err, w, r)
|
||||
return
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ func apiThemeCreateHandler(w http.ResponseWriter, r *http.Request) {
|
|||
sendErrorJson(err, w, r)
|
||||
return
|
||||
}
|
||||
if err := source.CompileSASS(source.DefaultScss...); err != nil {
|
||||
if err := source.CompileSASS(); err != nil {
|
||||
source.CopyToPublic(source.TmplBox, "css", "main.css")
|
||||
source.CopyToPublic(source.TmplBox, "css", "base.css")
|
||||
log.Errorln("Default 'base.css' was inserted because SASS did not work.")
|
||||
|
|
|
@ -71,8 +71,8 @@ func Router() *mux.Router {
|
|||
|
||||
r.PathPrefix("/css/").Handler(http.StripPrefix(basePath, Gzip(staticAssets("css"))))
|
||||
r.PathPrefix("/js/").Handler(http.StripPrefix(basePath, Gzip(staticAssets("js"))))
|
||||
r.PathPrefix("/scss/").Handler(http.StripPrefix(basePath, Gzip(staticAssets("scss"))))
|
||||
r.PathPrefix("/favicon/").Handler(http.StripPrefix(basePath, Gzip(staticAssets("favicon"))))
|
||||
r.PathPrefix("/scss/").Handler(http.StripPrefix(basePath, staticAssets("scss")))
|
||||
r.PathPrefix("/favicon/").Handler(http.StripPrefix(basePath, staticAssets("favicon")))
|
||||
r.PathPrefix("/robots.txt").Handler(http.StripPrefix(basePath, indexHandler))
|
||||
r.PathPrefix("/banner.png").Handler(http.StripPrefix(basePath, indexHandler))
|
||||
} else {
|
||||
|
@ -80,9 +80,9 @@ func Router() *mux.Router {
|
|||
tmplBoxHandler := http.StripPrefix(basePath, tmplFileSrv)
|
||||
|
||||
r.PathPrefix("/css/").Handler(http.StripPrefix(basePath, Gzip(tmplFileSrv)))
|
||||
r.PathPrefix("/scss/").Handler(http.StripPrefix(basePath, Gzip(tmplFileSrv)))
|
||||
r.PathPrefix("/scss/").Handler(http.StripPrefix(basePath, tmplFileSrv))
|
||||
r.PathPrefix("/js/").Handler(http.StripPrefix(basePath, Gzip(tmplFileSrv)))
|
||||
r.PathPrefix("/favicon/").Handler(http.StripPrefix(basePath, Gzip(tmplFileSrv)))
|
||||
r.PathPrefix("/favicon/").Handler(http.StripPrefix(basePath, tmplFileSrv))
|
||||
r.PathPrefix("/robots.txt").Handler(tmplBoxHandler)
|
||||
r.PathPrefix("/banner.png").Handler(tmplBoxHandler)
|
||||
}
|
||||
|
|
|
@ -14,9 +14,8 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
log = utils.Log.WithField("type", "source")
|
||||
TmplBox *rice.Box // HTML and other small files from the 'source/tmpl' directory, this will be loaded into '/assets'
|
||||
DefaultScss = []string{"scss/base.scss", "scss/layout.scss", "scss/forms.scss", "scss/mixin.scss", "scss/mobile.scss", "scss/variables.scss"}
|
||||
log = utils.Log.WithField("type", "source")
|
||||
TmplBox *rice.Box // HTML and other small files from the 'source/tmpl' directory, this will be loaded into '/assets'
|
||||
)
|
||||
|
||||
// Assets will load the Rice boxes containing the CSS, SCSS, JS, and HTML files.
|
||||
|
@ -38,7 +37,7 @@ func scssRendered(name string) string {
|
|||
}
|
||||
|
||||
// CompileSASS will attempt to compile the SASS files into CSS
|
||||
func CompileSASS(files ...string) error {
|
||||
func CompileSASS() error {
|
||||
sassBin := utils.Params.GetString("SASS")
|
||||
if sassBin == "" {
|
||||
bin, err := exec.LookPath("sass")
|
||||
|
@ -77,8 +76,7 @@ func UsingAssets(folder string) bool {
|
|||
if err := CreateAllAssets(folder); err != nil {
|
||||
log.Warnln(err)
|
||||
}
|
||||
err := CompileSASS(DefaultScss...)
|
||||
if err != nil {
|
||||
if err := CompileSASS(); err != nil {
|
||||
//CopyToPublic(CssBox, folder+"/css", "base.css")
|
||||
log.Warnln("Default 'base.css' was insert because SASS did not work.")
|
||||
return true
|
||||
|
@ -148,9 +146,11 @@ func CreateAllAssets(folder string) error {
|
|||
return err
|
||||
}
|
||||
log.Infoln("Compiling CSS from SCSS style...")
|
||||
err := CompileSASS(DefaultScss...)
|
||||
if err := CompileSASS(); err != nil {
|
||||
return err
|
||||
}
|
||||
log.Infoln("Statping assets have been inserted")
|
||||
return err
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeleteAllAssets will delete the '/assets' folder
|
||||
|
|
|
@ -8,7 +8,26 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
dir string
|
||||
dir string
|
||||
requiredFiles = []string{
|
||||
"css/style.css",
|
||||
"css/style.css.gz",
|
||||
"css/main.css",
|
||||
"scss/main.scss",
|
||||
"scss/base.scss",
|
||||
"scss/forms.scss",
|
||||
"scss/layout.scss",
|
||||
"scss/mixin.scss",
|
||||
"scss/mobile.scss",
|
||||
"scss/variables.scss",
|
||||
"js/bundle.js",
|
||||
"js/main.chunk.js",
|
||||
"js/polyfill.chunk.js",
|
||||
"js/style.chunk.js",
|
||||
"banner.png",
|
||||
"favicon.ico",
|
||||
"robots.txt",
|
||||
}
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
@ -19,59 +38,67 @@ func init() {
|
|||
dir = utils.Params.GetString("STATPING_DIR")
|
||||
}
|
||||
|
||||
func assetFiles(t *testing.T, exist bool) {
|
||||
for _, f := range requiredFiles {
|
||||
if exist {
|
||||
assert.FileExists(t, dir+"/assets/"+f)
|
||||
} else {
|
||||
assert.NoFileExists(t, dir+"/assets/"+f)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCore_UsingAssets(t *testing.T) {
|
||||
assert.False(t, UsingAssets(dir))
|
||||
assetFiles(t, false)
|
||||
}
|
||||
|
||||
func TestCreateAssets(t *testing.T) {
|
||||
assert.Nil(t, CreateAllAssets(dir))
|
||||
assert.FileExists(t, dir+"/assets/js/bundle.js")
|
||||
assert.True(t, UsingAssets(dir))
|
||||
assert.Nil(t, CompileSASS(DefaultScss...))
|
||||
assert.FileExists(t, dir+"/assets/css/style.css")
|
||||
assert.FileExists(t, dir+"/assets/css/main.css")
|
||||
assert.FileExists(t, dir+"/assets/scss/main.scss")
|
||||
assert.FileExists(t, dir+"/assets/scss/base.scss")
|
||||
assert.FileExists(t, dir+"/assets/scss/forms.scss")
|
||||
assert.FileExists(t, dir+"/assets/scss/mobile.scss")
|
||||
assert.FileExists(t, dir+"/assets/scss/layout.scss")
|
||||
assert.FileExists(t, dir+"/assets/scss/variables.scss")
|
||||
assert.Nil(t, CompileSASS())
|
||||
assetFiles(t, true)
|
||||
}
|
||||
|
||||
func TestCopyAllToPublic(t *testing.T) {
|
||||
err := CopyAllToPublic(TmplBox)
|
||||
require.Nil(t, err)
|
||||
assetFiles(t, true)
|
||||
}
|
||||
|
||||
func TestCompileSASS(t *testing.T) {
|
||||
CompileSASS(DefaultScss...)
|
||||
err := CompileSASS()
|
||||
require.Nil(t, err)
|
||||
assert.True(t, UsingAssets(dir))
|
||||
assetFiles(t, true)
|
||||
}
|
||||
|
||||
func TestSaveAndCompileAsset(t *testing.T) {
|
||||
scssData := "$bodycolor: #333; BODY { color: $bodycolor; }"
|
||||
|
||||
err := SaveAsset([]byte(scssData), "scss/theme.scss")
|
||||
err := SaveAsset([]byte(scssData), "scss/base.scss")
|
||||
require.Nil(t, err)
|
||||
assert.FileExists(t, dir+"/assets/scss/theme.scss")
|
||||
assert.FileExists(t, dir+"/assets/scss/base.scss")
|
||||
|
||||
asset := OpenAsset("scss/theme.scss")
|
||||
asset := OpenAsset("scss/base.scss")
|
||||
assert.NotEmpty(t, asset)
|
||||
assert.Equal(t, scssData, asset)
|
||||
|
||||
err = CompileSASS("scss/theme.scss")
|
||||
err = CompileSASS()
|
||||
require.Nil(t, err)
|
||||
assert.FileExists(t, dir+"/assets/css/theme.css")
|
||||
assert.FileExists(t, dir+"/assets/css/main.css")
|
||||
|
||||
themeCSS, err := utils.OpenFile(dir + "/assets/css/theme.css")
|
||||
themeCSS, err := utils.OpenFile(dir + "/assets/css/main.css")
|
||||
require.Nil(t, err)
|
||||
|
||||
assert.Contains(t, themeCSS, `color: #333;`)
|
||||
}
|
||||
|
||||
func TestOpenAsset(t *testing.T) {
|
||||
asset := OpenAsset("scss/theme.scss")
|
||||
assert.NotEmpty(t, asset)
|
||||
for _, f := range requiredFiles {
|
||||
asset := OpenAsset(f)
|
||||
assert.NotEmpty(t, asset)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeleteAssets(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue