首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Webjars中使用?

如何在Webjars中使用?
EN

Stack Overflow用户
提问于 2013-10-18 17:02:27
回答 4查看 657关注 0票数 5

我有一个(1.8.5)项目。我想通过Webjars提供静态Javascript & CSS。然而,我不断地得到HTTP 404错误。如何使我的Webjars文件可访问?

我的src/main/webapp/WEB-INF/appengine-web.xml /谷歌的文档

代码语言:javascript
复制
<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文件:

代码语言:javascript
复制
<html>
<head>
    <link rel="stylesheet" href="webjars/bootstrap/3.0.0/css/bootstrap.min.css">
</head>
...
</html>

pom.xml片段

代码语言:javascript
复制
    <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贴出的问题,所以我不知道要提供什么额外的信息--温柔点,所以。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-18 17:09:05

不幸的是,Webjars需要一个Servlet3.x容器,但是Google目前仍然只在2.5版本上。

您可能希望在GAE问题列表中突出本期

票数 2
EN

Stack Overflow用户

发布于 2014-01-16 21:59:42

我终于找到了一个解决办法来实际工作!我和RESTlet一起做的。我认为您可以在非restlet应用程序中这样做,只需使用restlet就可以了。

如果您确实使用了restlet,只需将其插入路由器:

代码语言:javascript
复制
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/

票数 1
EN

Stack Overflow用户

发布于 2016-06-25 09:48:23

你很容易就能做到。也是在Servlet2.x容器上。

在您的web应用程序中注册我们的webjars-Servlet-2.xMaven依赖项:

代码语言:javascript
复制
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>webjars-servlet-2.x</artifactId>
    <version>1.1</version>
</dependency>

在您的WebjarsServlet中注册web.xml:

代码语言:javascript
复制
<!--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配置属性,如下所示:

代码语言:javascript
复制
<!--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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19455189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档