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