| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import {
- STATIC_ASSETS_BASE_URL_DEFAULT,
- STATIC_ASSETS_BASE_URL_PRODUCTION,
- STATIC_ASSETS_BASE_URL_TEST
- } from '@/config/static-assets-defaults'
- import { getStaticAssetsVersion, withOssVersion } from '@/utils/ossCache'
- function normalizeBase(u) {
- const s = (u || '').trim() || STATIC_ASSETS_BASE_URL_DEFAULT
- return s.endsWith('/') ? s : `${s}/`
- }
- function envBaseExplicit() {
- try {
- if (typeof import.meta !== 'undefined' && import.meta.env && import.meta.env.VITE_STATIC_ASSETS_BASE_URL) {
- return String(import.meta.env.VITE_STATIC_ASSETS_BASE_URL).trim()
- }
- } catch {
- // ignore
- }
- // 兼容 uni-app webpack/HBuilderX:使用 process.env(通常要求 VUE_APP_ 前缀)
- try {
- if (typeof process !== 'undefined' && process.env) {
- const v =
- process.env.VITE_STATIC_ASSETS_BASE_URL ||
- process.env.VUE_APP_STATIC_ASSETS_BASE_URL ||
- process.env.UNI_APP_STATIC_ASSETS_BASE_URL
- if (v) return String(v).trim()
- }
- } catch {
- // ignore
- }
- return ''
- }
- function resolveBase() {
- const explicit = envBaseExplicit()
- if (explicit) return normalizeBase(explicit)
- try {
- if (import.meta.env && import.meta.env.MODE === 'production') {
- return normalizeBase(STATIC_ASSETS_BASE_URL_PRODUCTION)
- }
- } catch {
- // ignore
- }
- return normalizeBase(STATIC_ASSETS_BASE_URL_TEST)
- }
- export function getStaticAssetsBaseUrl() {
- return resolveBase()
- }
- /**
- * 拼接远程静态资源完整 URL(相对路径不要前导 /,如 icons/1.png)。
- */
- export function staticAssetUrl(relativePath) {
- const p = String(relativePath || '').replace(/^\/+/, '')
- const seg = p.split('/').filter(Boolean).map((s) => encodeURIComponent(s)).join('/')
- const url = `${getStaticAssetsBaseUrl()}${seg}`
- // sqxp-static 默认在 nginx 侧设置了长缓存;这里统一追加 v=版本号,避免同名覆盖后不生效
- return withOssVersion(url, getStaticAssetsVersion())
- }
- export const DEFAULT_PLACEHOLDER_IMAGE_URL = staticAssetUrl('images/logo.png')
- export const IMG_DEFAULT_PRODUCT = staticAssetUrl('images/default-product.png')
- /** 全端统一:空列表 / 暂无 等占位图(与 miniprogram `nothing.svg` 一致) */
- export const IMG_NOTHING = staticAssetUrl('nothing.svg')
- export const IMG_EMPTY = IMG_NOTHING
- export const IMG_LOGO_WATERMARK = staticAssetUrl('images/logo11.png')
- export const IMG_CLIPBOARD = staticAssetUrl('logo-img/clipboard.svg')
- export const IMG_PASSWORD_CARD = staticAssetUrl('logo-img/password.png')
- export const IMG_LINK = staticAssetUrl('logo-img/link.png')
- export const IMG_SETTINGS_AVATAR = staticAssetUrl('images/设置头像.svg')
- export const IMG_SETTINGS_PASSWORD = staticAssetUrl('images/修改密码.svg')
- export const IMG_CUSTOMER_SERVICE = staticAssetUrl('images/客服.svg')
- /** 登录页输入框前图标(与静态资源目录 `images/用户名.svg`、`images/密码.svg` 对应) */
- export const IMG_LOGIN_USERNAME = staticAssetUrl('images/用户名.svg')
- export const IMG_LOGIN_PASSWORD = staticAssetUrl('images/密码.svg')
- export const ICON_ARROW_BOTTOM = staticAssetUrl('arrow-bottom.svg')
|