是否有可能通过WebJars使用我的应用程序中包含的Play 2.3应用程序concat/optimize JS(使用sbt-rjs)?
举一个具体的例子:我正在尝试创建一个core.js模块,其中包含在单个文件中连接和缩小的所有第三方库,然后可以将其指定为其他AMD模块的依赖项.
通过WebJars包含这些库而不是"手动"下载源会很棒.
这是我的build.sbt文件中的一个片段,我在其中指定了我的webjar依赖项:
// Webjars
libraryDependencies ++= Seq(
"org.webjars" % "requirejs" % "2.1.15",
"org.webjars" % "underscorejs" % "1.7.0",
"org.webjars" % "jquery" % "1.11.1",
"org.webjars" % "bootstrap" % "3.3.1" exclude("org.webjars", "jquery"),
"org.webjars" % "angularjs" % "1.3.4-1" exclude("org.webjars", "jquery")
)
Run Code Online (Sandbox Code Playgroud)
这是我的requireJS构建配置
requirejs.config({
baseUrl: '/assets/javascripts',
shim: {
'jsRoutes': {
deps: [],
exports: 'jsRoutes'
},
'angular': {
deps: ['jquery'],
exports: 'angular'
},
'underscore': {
exports: '_'
},
'angularRoute': ['angular'],
'angularCookies': ['angular'],
'bootstrap': ['jquery']
},
paths: {
'requirejs': …
Run Code Online (Sandbox Code Playgroud) 我注意到Eclipse中有一些支持JavaScript开发的Maven插件.使用它们的问题是我在Maven Central Repository中找不到任何JavaScript工件.具体来说,我一直在寻找JQuery.
是否有专门的JavaScript Maven存储库?
谢谢
我试图在我的JSF应用程序中使用Font Awesome图标.我按照入门说明并将以下内容添加到我的视图部分,取得了一些成功<h:head>
:
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css"
rel="stylesheet" />
Run Code Online (Sandbox Code Playgroud)
当我使用这个icon-home
类时,这给了我一个很好的主页图标:
但是,我不想依赖引导服务器来提供Font Awesome资源,所以我试图将这些与我的战争捆绑在一起,并配置我的视图以使用捆绑的资源.
我正在使用webjars项目创建的预制JAR.我的pom具有以下依赖性:
<dependency>
<groupId>org.webjars</groupId>
<artifactId>font-awesome</artifactId>
<version>3.2.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这将JAR放在我的WAR的WEB-INF/lib目录中.JAR结构的相关部分是:
META-INF
- MANIFEST.MF
+ maven
- resources
- webjars
- font-awesome
- 3.2.1
- css
- font-awesome.css
- *other css files*
- font
- *font files*
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法在我的项目中包含图标:
<h:outputStylesheet library="webjars"
name="font-awesome/3.2.1/css/font-awesome.css" />
Run Code Online (Sandbox Code Playgroud)
但是,这会将以前工作的主页图标呈现为:
我的浏览器(Chrome)在控制台中显示以下错误(域/端口/上下文根已更改以保护无辜;):
GET http://DOMAIN:PORT/CONTEXT-ROOT/javax.faces.resource/font-awesome/3.2.1/font/fontawesome-webfont.woff?v=3.2.1 404 (Not Found)
GET http://DOMAIN:PORT/CONTEXT-ROOT/javax.faces.resource/font-awesome/3.2.1/font/fontawesome-webfont.ttf?v=3.2.1 404 (Not Found)
GET http://DOMAIN:PORT/CONTEXT-ROOT/javax.faces.resource/font-awesome/3.2.1/font/fontawesome-webfont.svg 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)
所以看起来虽然正确解析了css文件,但是找不到包含css文件引用的字体的文件.我已在css文件中检查了这些引用,它们是:
src: url('../font/fontawesome-webfont.eot?v=3.2.1');
src: …
Run Code Online (Sandbox Code Playgroud) 我打算在我的项目中使用WebJars(通过Maven)而不是Bower.
WebMars的NPM,Bower和Classic风味有什么区别?
我的理解是,自从我使用Bower以来,我应该只使用Bower WebJars,因为我可以确定这些工件是可用的.这是考虑这个问题的正确方法吗?
在此先感谢您的帮助.
我有一个spring boot(我使用Thymeleaf进行模板化)项目,我想使用一些jQuery库.
不幸的是,webjars根本没有加载.我尝试了很多配置,但都失败了.
这是我的HTML页面的代码片段:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head lang="en">
<title>JAC</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script src="http://cdn.jsdelivr.net/webjars/jquery/2.1.4/jquery.js"
th:src="@{/webjars/jquery/2.1.4/jquery.min.js}" type="text/javascript"></script>
<script src="http://cdn.jsdelivr.net/webjars/jquery-file-upload/9.10.1/jquery.fileupload.js" type="text/javascript"
th:src="@{/webjars/jquery-file-upload/9.10.1/jquery.fileupload.min.js}"></script>
<link href="http://cdn.jsdelivr.net/webjars/bootstrap/3.3.5/css/bootstrap.min.css"
th:href="@{/webjars/bootstrap/3.3.5/css/bootstrap.min.css}"
rel="stylesheet" media="screen" />
<link href="http://cdn.jsdelivr.net/webjars/jquery-file-upload/9.10.1/jquery.fileupload.css"
rel="stylesheet" media="screen" />
</head>
Run Code Online (Sandbox Code Playgroud)
我已将它们添加到pom文件中:
<dependency>
<groupId>org.webjars.npm</groupId>
<artifactId>jquery</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.5</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery-file-upload</artifactId>
<version>9.10.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但是在调用页面时,我在jquery.min.js和jquery.fileupload.min.js上获得了404.
GET http://localhost:8888/webjars/jquery-file-upload/9.10.1/jquery.fileupload.min.js
2015-09-21 02:02:04.059 home:9
GET http://localhost:8888/webjars/jquery/2.1.4/jquery.min.js 404 (Not Found)
Run Code Online (Sandbox Code Playgroud) 您好我一直在寻找有关如何创建现有项目的webjar的分步指南.我的前端项目目前正在使用Angular 2 + webpack,我理解文件需要进入特定目录,META-INF/resources/webjars
并且项目中应该有一个启动Maven pom文件.问题是我不确定在我的项目中何处或如何开始实现这一点,所以我在这里询问是否有人可以帮助我或知道我在哪里可以找到一步一步的指导.
我计划使用webjar作为使用Spring Boot构建的另一个项目的依赖项.任何帮助是极大的赞赏.
为了在我的Play应用程序中使用WebJars,我添加了以下路线
GET /webjars/*file controllers.WebJarAssets.at(file)
Run Code Online (Sandbox Code Playgroud)
在我的scala模板中,我添加了以下行:
<link rel='stylesheet' href='@routes.WebJarAssets.at(WebJarAssets.locate("css/bootstrap.min.css"))'>
<link rel='stylesheet' href='@routes.WebJarAssets.at(WebJarAssets.locate("css/bootstrap-theme.min.css"))'>
Run Code Online (Sandbox Code Playgroud)
当我打开应用程序时,css文件被完美加载.但是一旦我运行activator eclipse
,我得到以下编译错误:
[info] Compiling 4 Scala sources and 2 Java sources to /Users/d135-1r43/play/blog/target/scala-2.11/classes...
[error] /Users/d135-1r43/play/blog/conf/routes:10: object WebJarAssets is not a member of package controllers
[error] GET /webjars/*file controllers.WebJarAssets.at(file)
[error] /Users/d135-1r43/play/blog/conf/routes:10: object WebJarAssets is not a member of package controllers
[error] GET /webjars/*file controllers.WebJarAssets.at(file)
[error] /Users/d135-1r43/play/blog/app/views/main.scala.html:8: not found: value WebJarAssets
[error] <link rel='stylesheet' href='@routes.WebJarAssets.at(WebJarAssets.locate("css/bootstrap.min.css"))'>
[error] ^
[error] /Users/d135-1r43/play/blog/app/views/main.scala.html:9: not found: value WebJarAssets
[error] <link rel='stylesheet' href='@routes.WebJarAssets.at(WebJarAssets.locate("css/bootstrap-theme.min.css"))'>
[error] ^ …
Run Code Online (Sandbox Code Playgroud) 如果有人有使用Vue.js作为Play Framework应用程序前端的经验,我想知道推荐的方法。
我当前的设置是一个 Play 应用程序(在 Java 中),带有用于处理 REST 请求的模型、控制器和 DAO - 这实际上是我的后端。Now Play 还允许您使用Twirl模板库来创建可用作静态 HTML 的视图。然而,我发现 Twirl 语法不必要地复杂且难以为单页应用程序组合视图。我更喜欢使用像 Vue 这样的 UI 工作更精细的东西
我的研究显示了将 Vue 集成到 Play 的两种选择:
使用Webjars:
它是某种 Play 插件,可将JQuery等 JavaScript 库捆绑到.jar
可由 Play 部署的文件中。坦率地说,我不明白这个过程,我不知道这将如何让我在.vue
文件中写入我的视图。
使用与 Play 后端松散连接的单独 Vue 项目:
这是我在发布此问题之前的当前展望。我想我可以使用vue-cli和NPM创建一个标准的 Vue Webpack项目,然后我可以以 RESTful 方式调用 Play 后端 API。这样做的问题是单独部署后端和前端的额外复杂性。我更喜欢一个 Play 应用程序(项目文件夹)中的所有内容——后端和前端。
其中哪一个是要走的路?我也乐于接受新的建议。对于任何建议,请解释该方法的优点,最好提供一个最小的工作示例(Github 存储库就足够了)。
谢谢。
我正在学习招摇,试图做一些改变,看看它是否可以反映在索引页面上。所以起点是index.html页面,我从jar文件中复制了它:
C:\swagger-ui\target\swagger-ui-2.1.0-M1\WEB-INF\lib\swagger-ui-2.1.8-M1.jar
并将新页面保存为index2.html,在里面的html内容中添加一行,并添加到上面的jar文件中。
但我注意到它有一个.gz文件作为原始的index.html文件,不知道它的用途,所以我还制作了一个名为index2.html.gz的文件并将其添加到上面的jar文件中,然后运行jetty服务器,并加载index.html: http://localhost:8080/swagger-ui/webjars/swagger-ui/2.1.8-M1/index.html
它显示正常,然后我尝试加载:index2.html,但找不到该页面,为什么?我应该在哪里包含它,以便它显示在:http://localhost:8080/swagger-ui/webjars/swagger-ui/2.1.8-M1/index2.html
错误消息是:
HTTP 错误 404
访问 /swagger-ui/webjars/swagger-ui/2.1.8-M1/index2.html 时出现问题。原因:
Not Found
Run Code Online (Sandbox Code Playgroud) Spring Boot 应用程序中没有js
或css
没有从 webjar 加载。我添加了所需的依赖项,并且可以看到 jars。
<script src="webjars/core-js/client/shim.min.js"></script>
<script src="webjars/zone.js/dist/zone.js"></script>
<script src="webjars/reflect-metadata/Reflect.js"></script>
<script src="webjars/systemjs/dist/system.src.js"></script>
Run Code Online (Sandbox Code Playgroud)
这给出了 404 错误,我还添加了以下配置来解决此问题,但仍然没有用。
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
/* *//**
*
* @return ViewResolver
*/
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/");
resolver.setSuffix(".html");
return resolver;
}
Run Code Online (Sandbox Code Playgroud)
我的POM
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.abc.xyz</groupId>
<artifactId>myapp</artifactId>
<version>0.0.1-SNAPSHOT</version> …
Run Code Online (Sandbox Code Playgroud)