diff --git a/src/Http/HttpFileManager.cpp b/src/Http/HttpFileManager.cpp
index 4ba8448..367e6dc 100644
--- a/src/Http/HttpFileManager.cpp
+++ b/src/Http/HttpFileManager.cpp
@@ -354,7 +354,8 @@ static string pathCat(const string &a, const string &b){
  */
 static void accessFile(TcpSession &sender, const Parser &parser, const MediaInfo &mediaInfo, const string &strFile, const HttpFileManager::invoker &cb) {
     bool is_hls = end_of(strFile, kHlsSuffix);
-    if (!is_hls && !File::is_file(strFile.data())) {
+    bool file_exist = File::is_file(strFile.data());
+    if (!is_hls && !file_exist) {
         //文件不存在且不是hls,那么直接返回404
         sendNotFound(cb);
         return;
@@ -368,7 +369,7 @@ static void accessFile(TcpSession &sender, const Parser &parser, const MediaInfo
 
     weak_ptr<TcpSession> weakSession = sender.shared_from_this();
     //判断是否有权限访问该文件
-    canAccessPath(sender, parser, mediaInfo, false, [cb, strFile, parser, is_hls, mediaInfo, weakSession](const string &errMsg, const HttpServerCookie::Ptr &cookie) {
+    canAccessPath(sender, parser, mediaInfo, false, [cb, strFile, parser, is_hls, mediaInfo, weakSession , file_exist](const string &errMsg, const HttpServerCookie::Ptr &cookie) {
             if (!errMsg.empty()) {
                 //文件鉴权失败
                 StrCaseMap headerOut;
@@ -397,11 +398,11 @@ static void accessFile(TcpSession &sender, const Parser &parser, const MediaInfo
                     invoker.responseFile(parser.getValues(), httpHeader, strFile);
             };
 
-            if (!is_hls) {
-                //不是hls,直接回复
+            if (file_exist || !is_hls) {
+                //不是hls或者文件存在,直接回复文件或404
                 response_file(cookie, cb, strFile, parser);
-            } else {
-                //文件不存在,那么说明是hls,我们等待其生成并延后回复
+            } else  {
+                //hls文件不存在,我们等待其生成并延后回复
                 auto strongSession = weakSession.lock();
                 if(!strongSession){
                     //http客户端已经断开,不需要回复