我有一个(1.8.5)项目。我想通过Webjars提供静态Javascript & CSS。然而,我不断地得到HTTP 404错误。如何使我的Webjars文件可访问?
我的src/main/webapp/WEB-INF/appengine-web.xml /谷歌的文档
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
...
<static-files>
<include path="/resources/**" />
<include path="/webjars/**" />
</static-files>
</appengine-web-app> 我的src/main/webapp/index.html,引用Webjars提供的引导 CSS文件:
<html>
<head>
<link rel="stylesheet" href="webjars/bootstrap/3.0.0/css/bootstrap.min.css">
</head>
...
</html>pom.xml片段
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>(lots)</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.0-beta</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.0.0</version>
</dependency>这是我的第一个GAE贴出的问题,所以我不知道要提供什么额外的信息--温柔点,所以。
发布于 2013-10-18 17:09:05
不幸的是,Webjars需要一个Servlet3.x容器,但是Google目前仍然只在2.5版本上。
您可能希望在GAE问题列表中突出本期。
发布于 2014-01-16 21:59:42
我终于找到了一个解决办法来实际工作!我和RESTlet一起做的。我认为您可以在非restlet应用程序中这样做,只需使用restlet就可以了。
如果您确实使用了restlet,只需将其插入路由器:
final Component component = new Component();
component.getClients().add(Protocol.CLAP);
final Directory dir = new Directory(component.getContext(), "clap://class/META-INF/resources/webjars");
dir.setDeeplyAccessible(true);
this.attach("/webjars", dir);
//access via http://example.com/webjars/jquery/1.9.0/jquery.min.js如果不使用restlet,则需要向web.xml添加restlet适配器,并使用上面的in创建restlet应用程序和路由器。这只会是几行额外的代码!
关于我博客的更多信息:http://demeranville.com/using-webjars-without-servlet-3-on-google-app-engine-gae/
发布于 2016-06-25 09:48:23
你很容易就能做到。也是在Servlet2.x容器上。
在您的web应用程序中注册我们的webjars-Servlet-2.xMaven依赖项:
<dependency>
<groupId>org.webjars</groupId>
<artifactId>webjars-servlet-2.x</artifactId>
<version>1.1</version>
</dependency>在您的WebjarsServlet中注册web.xml:
<!--Webjars Servlet-->
<servlet>
<servlet-name>WebjarsServlet</servlet-name>
<servlet-class>org.webjars.servlet.WebjarsServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebjarsServlet</servlet-name>
<url-pattern>/webjars/*</url-pattern>
</servlet-mapping>默认情况下,Webjars资源将由浏览器缓存。如果出于任何原因需要禁用缓存,可以使用disableCache配置属性,如下所示:
<!--Webjars Servlet-->
<servlet>
<servlet-name>WebjarsServlet</servlet-name>
<servlet-class>org.webjars.servlet.WebjarsServlet</servlet-class>
<init-param>
<param-name>disableCache</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebjarsServlet</servlet-name>
<url-pattern>/webjars/*</url-pattern>
</servlet-mapping>更多信息请看http://www.webjars.org/documentation#servlet2
https://stackoverflow.com/questions/19455189
复制相似问题