1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-01 17:38:37 +00:00

Add support for base URLs with subfolders

This commit is contained in:
Frédéric Guillot 2018-02-03 15:33:17 -08:00
parent 78385a351e
commit 9c42997209
10 changed files with 105 additions and 23 deletions

View file

@ -5,6 +5,7 @@
package config
import (
"net/url"
"os"
"strconv"
)
@ -26,7 +27,10 @@ const (
// Config manages configuration parameters.
type Config struct {
IsHTTPS bool
IsHTTPS bool
baseURL string
rootURL string
basePath string
}
func (c *Config) get(key, fallback string) string {
@ -53,13 +57,34 @@ func (c *Config) HasDebugMode() bool {
return c.get("DEBUG", "") != ""
}
// BaseURL returns the application base URL.
// BaseURL returns the application base URL with path.
func (c *Config) BaseURL() string {
baseURL := c.get("BASE_URL", defaultBaseURL)
if baseURL[len(baseURL)-1:] == "/" {
baseURL = baseURL[:len(baseURL)-1]
if c.baseURL == "" {
c.baseURL = c.get("BASE_URL", defaultBaseURL)
if c.baseURL[len(c.baseURL)-1:] == "/" {
c.baseURL = c.baseURL[:len(c.baseURL)-1]
}
}
return baseURL
return c.baseURL
}
// RootURL returns the base URL without path.
func (c *Config) RootURL() string {
if c.rootURL == "" {
u, _ := url.Parse(c.BaseURL())
u.Path = ""
c.rootURL = u.String()
}
return c.rootURL
}
// BasePath returns the application base path according to the base URL.
func (c *Config) BasePath() string {
if c.basePath == "" {
u, _ := url.Parse(c.BaseURL())
c.basePath = u.Path
}
return c.basePath
}
// DatabaseURL returns the database URL.