关于瑞吉外卖day2按照黑马的视频配置后找不到index.html页面的问题

博主在B站跟黑马程序员练手瑞吉外卖项目,day1未按视频配置WebMvcConfig类,直接将前端页面放入static里;day2配置WebMvcConfig类方法后,登录时index.html页面找不到。解决办法是在该类中加入addResourceHandlers函数,再次运行可成功进入页面。

在b站上看黑马程序员的瑞吉外卖项目练手。由于在day1里面,黑马的视频中没有把前端页面放入static资源里,而是配置了一个WebMvcConfig类,我直接把前端页面放入了static里,没有配置这个类。

而在day2里面需要解决js数据只能处理16位的问题,在WebMvcConfig类中又配置了一个方法,我配置好这个方法后,登入页面发现index.html页面找不到了。

This application has no explicit mapping for /error, so you are seeing this as a fallback.
There was an unexpected error (type=Not Found, status=404).

解决办法:在WebMvcConfig类中加入addResourceHandlers 函数,代码如下:

 @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("backend/**").addResourceLocations("classpath:/static/backend/");
        registry.addResourceHandler("front/**").addResourceLocations("classpath:/static/front/");
    }

再次运行,即可成功进入index.html页面。

### 黑马程序员瑞吉外卖项目的源码和技术实现 #### 项目概述 黑马程序员的瑞吉外卖个基于Java的技术栈构建的全栈项目,旨在帮助开发者掌握前后端开发技能。该项目的主要技术栈包括Vue2、ElementUI、SpringBoot、SSM框架、Swagger、Lombok、MyBatisPlus、Redis以及Nginx等[^1]。 #### 技术细节 - **前端部分**: 前端采用Vue2作为主要框架,并结合ElementUI组件库来快速搭建界面。通过这些工具,能够高效地创建响应式的用户交互界面。 - **后端部分**: 后端使用SpringBoot框架简化配置流程并提升性能;同时引入了MyBatisPlus用于ORM操作,减少重复代码编写工作量。为了提高缓存效率,集成了Redis服务[^4]。 - **其他特性**: - 数据持久化层采用了SSM(Spring+SpringMVC+MyBatis)架构模式。 - API文档自动生成依赖于Swagger插件。 - 工具类支持方面运用到了Lombok注解以降低样板代码比例。 - Nginx被用来处理反向代理请求及静态资源加载优化等问题[^3]。 #### 登录功能的安全增强措施 针对未授权访问控制问题,可以通过设置过滤器或拦截器机制加以解决。当检测到当前会话不存在有效认证信息时,则强制重定向至登录入口处[^4]: ```java @Component public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(false); if(session != null && session.getAttribute("user") != null){ return true; } // Redirect to login page when user is not authenticated. response.sendRedirect("/login"); return false; } } ``` #### 缓存管理示例 在实际业务场景下,比如新增套餐这动作可能会触发整个菜单列表重新渲染的情况发生。此时我们可以利用`@CacheEvict`注解清除对应key下的所有记录项从而达到实时更新的目的[^5]: ```java @PostMapping() @CacheEvict(value="setmealCache", allEntries=true) public Result<String> saveSetmeal(@RequestBody SetmealDto setmealDto){ log.info(setmealDto.toString()); // Custom logic here... setmealService.saveWithDish(setmealDto); return Result.success("保存成功"); } ``` #### 分页查询逻辑定制 由于涉及到多张表格之间的联合检索需求无法单纯依靠MyBatis Plus内置方法满足条件设定灵活性的要求,因此需要手动定义SQL语句并通过XML映射文件形式表达出来。下面给出了段关于如何实现带模糊匹配选项的功能片段[^5]: ```sql <select id="listSetmeal" resultType="com.example.model.SetmealDish"> SELECT sm.id as setId,d.name AS dishName,... FROM set_meal sm LEFT JOIN dishes d ON sm.dish_id=d.id WHERE 1=1 <if test="_parameter.name != null and _parameter.name != '' "> AND (d.name LIKE CONCAT('%',#{name},'%')) </if> </select> ``` --- ###
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值