Repository: searxng/searxng

Issue:
Path issue - SearX is looking for themes/oscar/plugins/js/search_on_category_select.js
<!-- PLEASE FILL THESE FIELDS, IT REALLY HELPS THE MAINTAINERS OF SearXNG -->

**Version of SearXNG, commit number if you are using on master branch and stipulate if you forked SearXNG**

2022.03.26-1ee5cfb0 

**How did you install SearXNG?**

N/A

**What happened?**

SearX is looking for `search_on_category_select.js` at `/static/themes/oscar/plugins/js/search_on_category_select.js` while it's at `/static/plugins/js/search_on_category_select.js`

I noticed because the `X-Content-Type-Options` header blocked it: 

`The resource from “https://URL.ext/static/themes/oscar/plugins/js/search_on_category_select.js” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff)`

**How To Reproduce**
<!-- How can we reproduce this issue? (as minimally and as precisely as possible) -->

N/A

**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->

N/A

**Screenshots & Logs**
<!-- If applicable, add screenshots, logs to help explain your problem. -->

N/A

**Additional context**
<!-- Add any other context about the problem here. -->

N/A
Path issue - SearX is looking for themes/oscar/plugins/js/search_on_category_select.js
<!-- PLEASE FILL THESE FIELDS, IT REALLY HELPS THE MAINTAINERS OF SearXNG -->

**Version of SearXNG, commit number if you are using on master branch and stipulate if you forked SearXNG**

2022.03.26-1ee5cfb0 

**How did you install SearXNG?**

N/A

**What happened?**

SearX is looking for `search_on_category_select.js` at `/static/themes/oscar/plugins/js/search_on_category_select.js` while it's at `/static/plugins/js/search_on_category_select.js`

I noticed because the `X-Content-Type-Options` header blocked it: 

`The resource from “https://URL.ext/static/themes/oscar/plugins/js/search_on_category_select.js” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff)`

**How To Reproduce**
<!-- How can we reproduce this issue? (as minimally and as precisely as possible) -->

N/A

**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->

N/A

**Screenshots & Logs**
<!-- If applicable, add screenshots, logs to help explain your problem. -->

N/A

**Additional context**
<!-- Add any other context about the problem here. -->

N/A


Discussion:
Note: Seems to actually be a path issue.
Note: Seems to actually be a path issue.

Resolving patch:
diff --git a/searx/webapp.py b/searx/webapp.py
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -348,13 +348,16 @@ def get_result_template(theme_name: str, template_name: str):
 def custom_url_for(endpoint: str, override_theme: Optional[str] = None, **values):
     suffix = ""
     if endpoint == 'static' and values.get('filename'):
-        theme_name = get_current_theme_name(override=override_theme)
-        filename_with_theme = "themes/{}/{}".format(theme_name, values['filename'])
-        values['filename'] = filename_with_theme
-        if get_setting('ui.static_use_hash', False):
+        file_hash = static_files.get(values['filename'])
+        if not file_hash:
+            # try file in the current theme
+            theme_name = get_current_theme_name(override=override_theme)
+            filename_with_theme = "themes/{}/{}".format(theme_name, values['filename'])
             file_hash = static_files.get(filename_with_theme)
             if file_hash:
-                suffix = "?" + file_hash
+                values['filename'] = filename_with_theme
+        if get_setting('ui.static_use_hash') and file_hash:
+            suffix = "?" + file_hash
     if endpoint == 'info' and 'locale' not in values:
         locale = request.preferences.get_value('locale')
         if _INFO_PAGES.get_page(values['pagename'], locale) is None:


Test patch: