diff --git a/R/dash.R b/R/dash.R index ba122302..c9d32aec 100644 --- a/R/dash.R +++ b/R/dash.R @@ -213,8 +213,8 @@ Dash <- R6::R6Class( private$in_viewer <- FALSE # config options - self$config$routes_pathname_prefix <- resolve_prefix(routes_pathname_prefix, "DASH_ROUTES_PATHNAME_PREFIX", url_base_pathname) - self$config$requests_pathname_prefix <- resolve_prefix(requests_pathname_prefix, "DASH_REQUESTS_PATHNAME_PREFIX", url_base_pathname) + self$config$routes_pathname_prefix <- resolvePrefix(routes_pathname_prefix, "DASH_ROUTES_PATHNAME_PREFIX", url_base_pathname) + self$config$requests_pathname_prefix <- resolvePrefix(requests_pathname_prefix, "DASH_REQUESTS_PATHNAME_PREFIX", url_base_pathname) self$config$external_scripts <- external_scripts self$config$external_stylesheets <- external_stylesheets diff --git a/R/utils.R b/R/utils.R index 450040c0..ae0ed9ef 100644 --- a/R/utils.R +++ b/R/utils.R @@ -457,22 +457,25 @@ valid_seq <- function(params) { } } -resolve_prefix <- function(prefix, environment_var, base_pathname) { +resolvePrefix <- function(prefix, environment_var, base_pathname) { if (!(is.null(prefix))) { assertthat::assert_that(is.character(prefix)) return(prefix) } else { + # Check environment variables prefix_env <- Sys.getenv(environment_var) - if (prefix_env != "") { + env_base_pathname <- Sys.getenv("DASH_URL_BASE_PATHNAME") + app_name <- Sys.getenv("DASH_APP_NAME") + + if (prefix_env != "") return(prefix_env) - } else { - env_base_pathname <- Sys.getenv("DASH_URL_BASE_PATHNAME") - if (env_base_pathname != "") - return(env_base_pathname) - else - return(base_pathname) - } + else if (app_name != "") + return(sprintf("/%s/", app_name)) + else if (env_base_pathname != "") + return(env_base_pathname) + else + return(base_pathname) } }