You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular网站申请Google Adsense遇ads.txt未找到及304状态问题求助

问题原因及解决办法

核心原因

1. Angular构建未将ads.txt纳入输出目录

Angular默认仅处理src/assets目录下的静态资源,以及项目源码文件(ts、html、css等)。直接放在src根目录的ads.txt不会被自动复制到构建生成的dist目录,导致部署后服务器上根本不存在这个文件,Google AdSense爬虫自然无法找到。

2. 304状态码的本质

304不是“文件未找到”,而是资源未修改的缓存状态。这说明你之前请求/ads.txt时返回了404(文件不存在),浏览器缓存了这个404结果;再次请求时,浏览器直接返回缓存的304状态,显示的依然是之前的404页面,本质还是服务器上没有目标文件。


解决步骤

方法一:通过assets目录配置(推荐)

  1. 将ads.txt移动到src/assets/目录下。
  2. 打开angular.json,确认projects -> [你的项目名] -> architect -> build -> options -> assets数组包含src/assets(默认已配置):
    "assets": [
      "src/favicon.ico",
      "src/assets"
    ]
    
  3. 构建项目后,ads.txt会出现在dist/[你的项目名]/assets/目录下。
  4. 配置服务器,将域名根路径的/ads.txt映射到该文件。比如Nginx可添加如下配置:
    location = /ads.txt {
        root /path/to/your/dist/project/assets;
    }
    

方法二:直接输出到构建根目录

  1. 在angular.json的assets数组中新增一项配置,让Angular把src根目录的ads.txt直接复制到dist根目录:
    "assets": [
      "src/favicon.ico",
      "src/assets",
      {
        "glob": "ads.txt",
        "input": "src/",
        "output": "/"
      }
    ]
    
  2. 重新构建项目,此时dist根目录会直接出现ads.txt,部署后即可通过https://你的域名/ads.txt访问。

验证方法

  1. 执行ng build --prod构建项目,检查dist目录下是否存在正确路径的ads.txt。
  2. 使用浏览器匿名窗口访问https://你的域名/ads.txt,确认能正常打开文件内容(避免缓存干扰)。
  3. 回到Google AdSense平台,重新触发审核验证。

内容的提问来源于stack exchange,提问作者Vaibhaav Sharrma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:22:40