我在我的web应用程序中导入css和js时遇到了一些问题。我使用的是Servlet/JSP/CSS/JS。
我很抱歉这个问题,我看到了许多问题和答案,这个主题和情况,但没有帮助我。
我正在尝试添加css和js文件,如下所示:
<link rel="stylesheet" href="<c:url value='/resources/stylesheet/common.css' />"/>
<link rel="stylesheet" href="<c:url value='/resources/stylesheet/index.css' />"/>
<script type="text/javascript" src="resources/js/validators/loginValidator.js"></script>
但发生了一些事情,我所有的css和js文件不工作。我的文件夹/文件在项目中的位置:
我试过很多不同的方法来解决这个问题。我试过这个:https://stackoverflow.com/a/23687360/5331196和https://stackoverflow.com/a/29012643/5331196的函数
什么也帮不了我。但唯一有效的是dinamycin进口:<%@include file="/resources/stylesheet/login.css" %>
等离子体
它有帮助,但是,在这种情况下,在我的jsp页面中会有很多代码,因为我的.css和.js文件很大。
我应该做什么来终止这个问题,在这种情况下我如何进行静态导入?
感谢所有能回答的人,你的朋友,davakin 111。
我的web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>Jean taxi-service</display-name>
<listener>
<listener-class>com.taxi.service.utils.ApplicationContext</listener-class>
</listener>
<filter>
<filter-name>ClientFilter</filter-name>
<filter-class>com.taxi.service.filter.ClientFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ClientFilter</filter-name>
<url-pattern>/someUrl1</url-pattern>
</filter-mapping>
<filter>
<filter-name>OrderFilter</filter-name>
<filter-class>com.taxi.service.filter.OrderFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OrderFilter</filter-name>
<url-pattern>/someUrl2</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>InitController</servlet-name>
<servlet-class>com.taxi.service.controller.InitController</servlet-class>
</servlet>
<servlet>
<servlet-name>LoginController</servlet-name>
<servlet-class>com.taxi.service.controller.LoginController</servlet-class>
</servlet>
<servlet>
<servlet-name>RegistrationController</servlet-name>
<servlet-class>com.taxi.service.controller.RegistrationController</servlet-class>
</servlet>
<servlet>
<servlet-name>UserController</servlet-name>
<servlet-class>com.taxi.service.controller.UserController</servlet-class>
</servlet>
<servlet>
<servlet-name>OrderController</servlet-name>
<servlet-class>com.taxi.service.controller.OrderController</servlet-class>
</servlet>
<servlet>
<servlet-name>PrivateAreaController</servlet-name>
<servlet-class>com.taxi.service.controller.PrivateAreaController</servlet-class>
</servlet>
<servlet>
<servlet-name>ReviewController</servlet-name>
<servlet-class>com.taxi.service.controller.OrderController</servlet-class>
</servlet>
<servlet>
<servlet-name>AdminController</servlet-name>
<servlet-class>com.taxi.service.controller.AdminController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>InitController</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LoginController</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>UserController</servlet-name>
<url-pattern>/savePersonData</url-pattern>
<url-pattern>/changePassword</url-pattern>
<url-pattern>/madeModerator</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>OrderController</servlet-name>
<url-pattern>/orderCreation</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RegistrationController</servlet-name>
<url-pattern>/registration</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ReviewController</servlet-name>
<url-pattern>/review</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PrivateAreaController</servlet-name>
<url-pattern>/privateArea</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AdminController</servlet-name>
<url-pattern>/adminPanel</url-pattern>
</servlet-mapping>
<!-- <error-page>
<location>/WEB-INF/pages/error.jsp</location>
</error-page>
-->
<session-config>
<session-timeout>45</session-timeout>
</session-config>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/order_board</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>
6条答案
按热度按时间93ze6v8z1#
对于JSP项目:
在文件夹
webapp
中创建cssLoader.jsp页面,如下所示:cssLoader.jsp文件
然后使用
<jsp:include page="../../cssLoader.jsp"></jsp:include>
加载此cssLoader页面,在此页面中您要导入页面中的css/js文件。**例如:**在我的情况下,目录:页面.jsp
注意事项:
../../取决于文件夹级别结构。
inn6fuwd2#
将css路径更改为
lnlaulya3#
希望这将工作。我猜你可以做到这一点添加这些行如下所示
bqucvtff4#
如果ccs样式是静态的(没有被服务器端代码预处理),为什么不使用普通的非JSP(HTML)表示法呢?
少一级调试
在server/web.xml中检查css关联从谷歌获得的基本"静态"样本将是可以的。
fcg9iug35#
我相信你可以通过做两个结构上的改变来纠正你的问题。
首先,将
pages/
文件夹移出WEB-INF
,移至webapp/resources
之下。因此,您的项目结构应如下所示:第二,使用这个新结构改变网页中引用内容的方式。例如,
<script>
标记现在应该如下所示:bksxznpy6#
只有当servlet使用RequestDispatcher(而不是sendRedirect)访问JSP页面时,solution by Bhuvan才起作用。
为了使CSS正确加载,在这两种情况下,sendRedirect和RequestDispatcher都使用绝对路径:
直接链接CSS时:
使用包含所有CSS引用的JSP文件时:
当你写
${pageContext.request.contextPath}
或${request.getContextPath()}
时,它意味着根文件夹-也就是webapp文件夹。在此之后,无论使用RequestDispatcher还是sendRedirect,您的CSS都将正确加载。
另请参阅:
1.必读:Details regarding absolute and relative paths