1. ホーム
  2. バックエンド
  3. ジャワ

スタイルが読み込まれず、ブラウザコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。

2022-01-21 20:11:24

問題はログインを書くときに発生し、スタイルが行ったり来たりし、ブラウザのコンソールにはメッセージが表示されます。

Uncaught SyntaxError: Unexpected token <

Resource interpreted as Stylesheet but transferred with MIME type text/html.

しかし、cssのロードパスは間違っておらず、ネットでいろいろ検索した結果、以下のようになりました。 http://bsr1983.iteye.com/blog/2246994 デバッグと組み合わせた自作のログインインターセプターフィルターを見ていると、確かにインターセプターの書き方に問題があるようなので、少し変更すれば、すべてのアクションリクエストが免除されるわけではありませんね。

  1. package cn.com.filter;
  2. import java.io.IOException;
  3. import javax.servlet.FilterChain;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.ServletRequest;
  6. import javax.servlet.ServletResponse;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import javax.servlet.http;
  10. import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
  11. import cn.com.jnpc.entity.User;
  12. /**
  13. * Login blocking
  14. * @author Uself 2017-10-17 1:10:00 PM
  15. *
  16. */
  17. public class LoginFilter extends StrutsPrepareAndExecuteFilter{
  18. @Override
  19. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException{
  20. HttpServletRequest rqs = (HttpServletRequest)request;
  21. HttpServletResponse rsp = (HttpServletResponse)response;
  22. String requestUrl = rqs.getRequestURI();
  23. String servletRequestUrl = rqs.getServletPath();
  24. /*
  25. * Determine if you are logged in (session or not) on non-login requests
  26. * Yes: Continue
  27. * no: redirect to login request
  28. */
  29. if((!requestUrl.contains(".action") && !requestUrl.contains(".jsp")) || "/singleAparment/loginAction. action".equals(requestUrl)){
  30. super.doFilter(request, response, chain);
  31. }else{
  32. HttpSession session = rqs.getSession();
  33. User user = (User) session.getAttribute("USER_INFO");
  34. if(user == null || (user.getUserName() == null || user.getUserName().isEmpty()){
  35. rsp.sendRedirect(rqs.getContextPath());
  36. }else{
  37. super.doFilter(request, response, chain);
  38. }
  39. }
  40. }
  41. }