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

Smidge 3.0.0获取脚本/CSS报500错误:InternalCreateDirectory异常求助

解决Smidge 3.0.0缓存文件夹权限及未授权500错误的步骤

我之前也碰到过类似的Smidge缓存权限问题,给你几个针对性的排查和修复步骤:

  • 检查缓存目录的读写权限
    Smidge默认会在网站根目录下创建wwwroot/smidge或配置指定的缓存目录,务必确保运行网站的应用程序池身份(比如IIS的AppPoolIdentity,或是开发服务器的运行身份)对这个目录拥有读写权限。如果是开发环境用IIS Express,右键项目选择「属性」->「Web」,确认服务器运行身份的权限足够。你也可以手动创建该目录,然后给对应用户添加修改、写入权限。

  • 验证Smidge的配置设置
    打开appsettings.json(或你的项目配置文件),检查Smidge的缓存路径配置是否正确,示例配置如下:

    "Smidge": {
      "Cache": {
        "Folder": "wwwroot/smidge-cache"
      }
    }
    

    确保该路径是网站可访问的,且目录已存在(若不存在,可手动创建后再测试)。另外,要检查是否有自定义授权策略误应用到了Smidge的路由上——Smidge的路由默认允许匿名访问,如果你在Startup/Program.cs中添加了全局授权,需要排除Smidge的路径:

    app.UseAuthorization();
    app.MapSmidgeRoutes();
    // 若使用全局授权,需排除Smidge路径:
    app.UseWhen(context => !context.Request.Path.StartsWithSegments("/sb"), appBuilder =>
    {
        appBuilder.UseAuthorization();
    });
    
  • 清理缓存并重启服务
    如果之前有残留的缓存文件或权限异常,先删除Smidge缓存目录下的所有文件,然后重启Web应用(开发环境可重启VS或IIS Express),让Smidge重新创建缓存文件和目录。

  • 检查开发服务器的运行身份
    如果你用的是Visual Studio自带的IIS Express,有时它的运行身份权限不足,可以尝试以管理员身份运行Visual Studio,再启动项目测试。如果用Kestrel,确保启动Kestrel的用户对缓存目录有读写权限。

  • 查看详细错误日志
    500错误的详细信息能帮你精准定位问题,你可以在appsettings.json中调高日志级别:

    "Logging": {
      "LogLevel": {
        "Default": "Information",
        "Microsoft.AspNetCore": "Warning",
        "Smidge": "Debug"
      }
    }
    

    之后查看输出窗口或日志文件,找到Smidge相关的错误信息,就能明确是目录创建失败还是文件写入被拒绝等具体问题。


内容的提问来源于stack exchange,提问作者Sat Thiru

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 07:03:08