问题标签 [resource-loading]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring 的 ResourceLoader 类中的 getFile() 正在删除文件名中的编码文本
当我使用 Spring 的 ResourceLoader 类加载可以在文件名中具有编码值的文件(例如 %27 表示 ' 或 %20 表示空格)并在其上调用 getFile() 方法时,它将编码值转换为正常值(在这种情况下 %27 到 ' 或 %20 到空间中),因此每当我使用该文件对象检查该文件是否存在于文件系统中或尝试向该文件写入某些内容时,它都会失败,因为文件系统中没有具有该解码名称的文件。我们如何在使用 Spring 的 ResouceLoader 类时保留解码后的文件名。
java - 错误 [org.apache.velocity] ResourceManager:无法在任何资源加载器中找到资源“layout.vm”
MyController.java:
ServletInitializer.java:
AppConfig.java:
WEB-INF/views 下的 index.vm:
我部署到 Wildfly,部署成功,使用 'localhost:8080/myapp' 访问主页,我得到Internal Server Error
:
我在我的项目中没有看到任何地方提到“布局”。这是从哪里来的?
javascript - 如何使 Topbar 扩展与最新的 MediaWiki 一起使用?
我运行一个使用Topbar 扩展的 MediaWiki 站点。我最近将安装从 MediaWiki 的主分支升级到了最前沿的版本:1.28.0-alpha (91e56cc) 版本。
之后,Topbar 扩展不再起作用:
- 通常,topbar div 根本不被插入。
- 有时,顶栏 div 会出现,但链接不起作用。
后一个问题可能是我的 CSS 的问题(我不知道),但间歇性行为与我有关。因此,首要任务是确保每次至少出现 topbar div。
这个扩展只是一个小的 javascript,它应该在页面加载时运行,在顶部 () 附近添加一块 HTML <div id="mw-writh-topbar" ...>
。它使用 jQuery 函数来做到这一点。
不幸的是,我并不是真正的 Web 开发人员,所以即使是这个简单的例程也有点让我头疼。
以下是我所知道的:
- 没有 500 服务器错误,PHP 没有明显的问题。
- 在我调查的早期的某个时候,开发者控制台有时会抱怨
Uncaught ReferenceError: jQuery is not defined
,但我现在无法再重现它了。研究模糊地表明这可能是因为扩展没有使用新的 ResourceLoader 机制,所以我尝试迁移 Topbar 以使用 ResourceLoader 机制(通过maintenance/convertExtensionToRegistration.php
,然后wfLoadExtension('Topbar')
inLocalSettings.php
),但似乎没有任何区别。 - Topbar 钩子似乎被调用,因为
css/Topbar.css
被添加到页面中。但我不知道是否js/Topbar.js
曾经运行过,如果是这样,会发生什么。
那么:我该如何调试呢?
java - XSD 导入是否会在资源加载时自动加载?
我正在使用下面的代码片段在静态块中创建一个 Schema 对象:
并且 test.xsd 正在导入其他三个 XSD 文件,
我的问题是当引用它们时(如验证时)导入是否可用,或者我是否必须通过创建 URL 对象来专门加载导入。
javascript - Mediawiki 通过 ReourceLoader 添加 Jquery 插件
我正在尝试添加一个 JQuery 插件,它不是 mediawiki 的核心插件之一(twbsPagination)
问题是mw.loader.using
不支持 URL,因此我无法传递twbsPagination
要加载的 urlmw.loader.load
并且不支持回调以使我能够在加载插件后运行我的代码。
如何加载 jquery 插件并在 mediawiki 1.28 加载后使用它?
java - 为什么我可以从 JAR 加载类而不是资源?
我正在使用一个只包含一个ClassPath
元素的 JAR 来为我的 Java 应用程序构建类路径,我遇到了一个奇怪的行为:我可以从ClassPath
元素中提到的 JAR 加载类,但缺少一些(或全部)资源。
示例: Myfull-classpath.jar
仅包含META-INF/MANIFEST.MF
具有通常内容的 a 和这一行:
service-main.jar
包含com.pany.project.Main
.
当我运行时java -cp full-classpath.jar com.pany.project.Main
,它有效。
但是foo-service.jar
并bar-service.jar
包含服务定义META-INF/services/....
java.util.ServiceLoader
当我从 Maven 单元测试调用时,它可以同时看到 thefoo
和bar
service。当 I 时java -cp full-classpath.jar com.pany.project.Main -service foo
,我在日志中看到一个空的服务列表。
更糟糕的是,当我打电话时Main.class.getClassLoader().getResources("META-INF/MANIFEST.MF")
,我只从full-classpath.jar
. 其他三个 JAR 的清单文件丢失了,这没有意义,因为我可以从这些 JAR 加载类!当我手动构建整个类路径时它也可以工作。只有当我ClassPath
在full-classpath.jar
.
任何想法可能是错误的或我如何调试它?
我正在使用 Java 8。
java - 资源在 Eclipse 中加载,但在 IntelliJ 中没有
我知道,这里已经问过类似的问题,但似乎没有一个适合我的确切问题。我有以下(部分)目录结构:
在 TweetView.java 中,我试图获取 TweetView.html 的资源 URL,如下所示:
这在 Eclipse (Neon.2) 中运行良好,但在 IntelliJ (2017.2.3)htmlResourceURL
中始终为null
. 我知道 HTML 文件的位置可能不理想(应该放在资源文件夹中),但由于各种原因,我现在不应该更改它。
我观察到 src 文件夹在 IntelliJ 的项目结构中被标记为“Sources”文件夹,并且它的子文件夹没有明确标记。项目设置不会在 Eclipse 和 IntelliJ 之间共享,因为该项目使用 Maven。注意:问题是关于直接从各自的 IDE 中将项目作为 Java 应用程序运行,而不是 JAR/WAR 导出。
我看到 IntelliJ 有这些“资源模式”,它们定义了哪些文件类型应该被视为资源,但我无法通过添加 .html 来使其工作,无论是否使用通配符(根据 IntelliJ 网站,.html无论如何,默认情况下被视为资源)。
有谁知道问题可能是什么?由于它在 Eclipse 中工作,我理想地希望通过 IntelliJ 中的配置来解决问题,而不是更改代码。
编辑: 这是我的 POM:
java - 让速度在战争中找到模板
我正在使用存储在src/main/webapp/templates
.
我基于 Jersey 的 REST 服务需要找到这些模板。在我的 Eclipse 本地(使用 Sysdeo 插件),我使用
让 Tomcat 找到模板(我从https://stackoverflow.com/a/38812523/927493获得)。现在,当我将战争部署到“真正的”Tomcat 时,找不到资源(无法找到资源“模板/FreigabeNeu.vm”)
我可能必须将属性设置为不同的东西,但我只是不知道该怎么做。
我检查了该templates
目录确实被复制到了战争的主目录。