首页 > 解决方案 > 在服务器上找不到 Js 和 css 文件但在本地工作

问题描述

我遇到了一个非常奇怪的问题,我的所有 js、css、图像等。在服务器上找不到。但是,在本地一切正常。

这是我的布局的一部分,其中正在加载脚本和 css。

<head>
    <title>@ViewBag.Title</title>
    <meta name="description" content="@ViewBag.MetaDescription">
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    @await Component.InvokeAsync("GoogleAnalytics")

    <link rel="icon" href="~/img/Logo-small-background.png">
    <link rel="stylesheet" href="~/css/lib/bootstrap.min.css" />
    <link rel="stylesheet" href="~/css/fonts/ProximaNova/fonts.min.css" />
    <link rel="stylesheet" href="~/css/lib/font-awesome.min.css" />
    <link rel="stylesheet" href="~/css/site.css" />

    <script src="~/lib/jquery/dist/jquery.min.js"></script>
    <script src="~/js/lib/bootstrap.min.js"></script>
    <script src="~/js/lib/vue.min.js"></script>
    <script src="~/js/lib/lodash.min.js"></script>
    <script src="~/js/Shared.js"></script>
</head>

localhost 路径截图:https ://imgur.com/UEqH0W1

以及来自服务器的屏幕截图:https ://imgur.com/H3PIaOJ

我相信我的解决方案中的所有内容也都正确:https ://imgur.com/usBXXKI

这是我的 program.cs,只是为了表明我没有覆盖默认的 webRoot。

public static IWebHostBuilder CreateHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
            .UseStructureMap()
            .UseUrls("http://*:5000")
            .UseStartup<Startup>();

这是我尝试直接导航到 img 时的一些照片。

本地主机:https ://imgur.com/UvUi64f

服务器:https ://imgur.com/JnialeC

如果需要,我会在运行 Ubuntu 和 Apache 的 Raspberry Pi 上运行它,尽管我认为这在这种情况下并不重要,但我不确定。

任何帮助,将不胜感激。

标签: javascriptcssasp.net-core.net-5wwwroot

解决方案


原来它确实与我的服务器有关。

我试图使用类似的命令在本地运行我的网站

dotnet /var/www/site/site.dll

当我在服务器上运行该权限时,它以我的 Pi 用户身份运行,该用户无权访问所有文件夹。

一旦我启动了始终运行 .net 的服务器,该服务就会作为 www-data 运行,因此它确实可以访问。

否则我也可以在手动运行时授予我的用户访问权限。


推荐阅读