mirror of
https://github.com/go-shiori/shiori.git
synced 2025-02-22 06:53:22 +08:00
Fix: some CSS resources not loaded
This commit is contained in:
parent
2077d8fa2c
commit
a794dd8ea2
2 changed files with 21 additions and 2 deletions
|
@ -404,6 +404,7 @@ func processCSS(input io.Reader, baseURL *nurl.URL) (string, []ResourceURL) {
|
|||
// Save the CSS URL and replace it with archival URL
|
||||
res := ToResourceURL(cssURL, baseURL)
|
||||
if res.ArchivalURL == "" {
|
||||
buffer.Write(bt)
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
|
@ -31,12 +31,30 @@ func ToResourceURL(uri string, base *nurl.URL) ResourceURL {
|
|||
return ResourceURL{}
|
||||
}
|
||||
|
||||
// Create archive URL
|
||||
// Create download URL
|
||||
downloadURL := toAbsoluteURI(uri, base)
|
||||
downloadURL = rxTrailingSlash.ReplaceAllString(downloadURL, "")
|
||||
downloadURL = strings.ReplaceAll(downloadURL, " ", "+")
|
||||
|
||||
archivalURL := strings.Replace(downloadURL, "://", "/", 1)
|
||||
// Create archival URL
|
||||
archivalURL := downloadURL
|
||||
|
||||
// Some URL have its query escaped.
|
||||
// For example, Wikipedia's stylesheet looks like this :
|
||||
// load.php?lang=en&modules=ext.3d.styles%7Cext.cite.styles%7Cext.uls.interlanguage
|
||||
// However, when browser download it, it will be registered as unescaped query :
|
||||
// load.php?lang=en&modules=ext.3d.styles|ext.cite.styles|ext.uls.interlanguage
|
||||
// So, for archival URL, we need to unescape the query first.
|
||||
tmp, err := nurl.Parse(downloadURL)
|
||||
if err == nil {
|
||||
newQuery, _ := nurl.QueryUnescape(tmp.RawQuery)
|
||||
if newQuery != "" {
|
||||
tmp.RawQuery = newQuery
|
||||
archivalURL = tmp.String()
|
||||
}
|
||||
}
|
||||
|
||||
archivalURL = strings.Replace(archivalURL, "://", "/", 1)
|
||||
archivalURL = strings.ReplaceAll(archivalURL, "?", "-")
|
||||
archivalURL = strings.ReplaceAll(archivalURL, "#", "-")
|
||||
archivalURL = strings.ReplaceAll(archivalURL, "/", "-")
|
||||
|
|
Loading…
Reference in a new issue