2016-09-16 27 views
0

我最近开始使用drop-wizard进行应用程序开发,并且有点让人困惑,整个事情是如何运作的。拖放向导 - 网络应用程序目录和编辑静态文件

  1. 哪里是Web应用程序目录?
  2. 是否可以在不需要重新部署的情况下编辑静态文件(JS,CSS)?

谢谢。

+1

DW采用的是通过你的YAML配置/代码配置的嵌入式码头。它不作为webapp部署(默认情况下也可以这样做),但作为独立的jar文件。它也是一个REST服务器部署,所以你通常不一定有任何Java脚本文件或css文件(因为UI可能会在别处编码) – pandaadb

+0

感谢pandaadb,但我有一个应用程序与80%的REST还有一个小UI! – pMan

+1

您可以编程方式在web.xml中执行任何操作。所以从理论上讲,没有任何东西可以阻止你调整你的解决方案。你也可以看看这个:https://github.com/rvs-fluid-it/wizard-in-a-box。 – pandaadb

回答

1

我已经研究过这多一点,并尝试为您解答:

  1. 哪里是Web应用程序目录

DW应用程序不会(意味着作为)的Web应用程序。它们被部署为嵌入式系统,运行码头嵌入式服务器并监听某个端口。话虽如此,将应用程序封装为一个Web应用程序肯定有方法。 (请参阅评论中的链接)

  1. 是否可以在不需要重新部署的情况下编辑静态文件(JS,CSS)? - 是的(ISH)

这取决于你,真的。有一种叫做AssetBundle的东西。这些可以用于服务器静态资源(通常来自类路径)。然而,这是一种机制,您可以使用它来实现自己的AssetBundle,而不是从类路径中提供文件,而是将文件从常规路径提供。

或者,让AssetBundle工作,你可以添加你的常规路径类路径上启动。

或者,你可以实现对AssetBundle(资产并非球衣生态系统的一部分)ServletFilter中和实现在过滤器的动态变化。

其中大多数需要重新启动的原因或另一个。例如,一个Filter的自定义实现显然需要重新部署。 Servlet返回资产(我相信)也采用了缓存策略,可能需要重新启动(取决于您的实施)。

对于你的用户界面:另外还有一点(默认胡子模板用)将创建视图的能力,可以从您的应用程序支持的,通过相同的REST端点提供服务的DW-意见的项目。

希望帮助,

一些检查后:

您可以从文件系统提供静态资源,当您去修改它们。他们将得到正确的服务。如何做到这一点:

添加一个资产包与资源路径:

bootstrap.addBundle(new AssetsBundle("/assets2/", "/assets")); 

这增加了根类路径的资源assets2并具有从端点assets静态服务。

诀窍是您必须将您的文件系统位置添加为类路径资源。这可以通过参数(或eclipse运行配置中的类路径选项卡)完成。你可以谷歌相对容易。但是,你必须记住的classpath资源从文件系统资源的行为不同:

在我的情况下,我加入到classpath中:

/home/artur/tmp/assets/ 

然而,我的资产包提供从“assets2”。让我们看一下文件系统:

[email protected]:~/tmp/assets$ pwd 
/home/artur/tmp/assets 
[email protected]:~/tmp/assets$ find . 
. 
./assets2 
./assets2/test.txt 
[email protected]:~/tmp/assets$ 

所以,在我的文件系统中的位置已经被添加为根,但资产只是从子assets2

担任现在,位于所有资源在assets2中可以在运行时进行修改,并将由DW作为静态资源提供服务。

玩得开心玩耍,

阿图尔

+0

@pMan我添加了一个关于如何提供静态资源而不必重启/重新启动的例子 – pandaadb

相关问题