问题描述
我遇到了一个非常奇怪的问题,我的所有 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>
本地主机路径的屏幕截图: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
如果需要,我会在运行 Ubuntu 和 Apache 的 RaspBerry Pi 上运行它,虽然我认为在这种情况下这并不重要,但我不确定。
任何帮助将不胜感激。
解决方法
事实证明它确实与我的服务器有关。
我试图使用类似的命令在本地运行我的网站
dotnet /var/www/site/site.dll
当我在服务器上运行该权限时,它以我的 Pi 用户身份运行它,该用户无权访问所有文件夹。
一旦我启动了始终运行 .net 的服务器,该服务就会作为 www-data 运行,因此它确实可以访问。
否则我也可以在手动运行时授予我的用户访问权限。
,~ 表示 Unix 中的主目录。
~ 只是未运行 Windows 的本地计算机上的主目录。
HTML 知道将 ".." 作为父级处理,而 "."作为当前目录,但它将“~”视为文件夹名称。因此,您可能会在控制台中收到 404。