我将如何从 ASP.NET MVC 项目中引用 c# 库项目中的 javascript 文件

How would I refer to a javascript file in a c# library project from an ASP.NET MVC project?

本文关键字:项目 引用 文件 javascript MVC NET ASP      更新时间:2023-09-26

>通常我会去

<script src="~/Scripts/Controls/SomeScript.js"></script>

这将在 ASP.NET .cshtml 页面所在的同一项目的"脚本/控件"文件夹中找到 SomeScript.js。

然而,现在是在两个项目之间共享javascript文件的时候了。我需要将其移动到库项目中。

src 属性的值必须是多少才能在同一解决方案中完全不同的项目中定位 javascript 文件?我必须做其他事情吗?这个问题通常如何解决?

我已经尝试在"SomeScript.js"属性页面上"复制到输出目录",这会将脚本及其包含文件夹复制到"bin"目录。但是,Chrome 在尝试访问 bin 文件夹中.js文件时会报告"不允许加载本地资源"。

脚本所在的文件夹必须位于项目树中,尤其是在计划将应用程序发布到远程服务器时。 Visual Studio 提供了一个将现有项添加为链接的选项,这将允许您将存储在项目树外部的项符号链接到项目树中的文件夹中。 对原始文件所做的任何更改都将反映在您的项目中;但是,如果文件被删除,链接将保留,断开。

还必须将以下内容添加到项目 .csproj 文件的末尾,在"项目关闭"标记之前。

<Target Name="CopyLinkedContentFiles" BeforeTargets="Build">
<Copy SourceFiles="%(Content.Identity)" DestinationFiles="%(Content.Link)" SkipUnchangedFiles="true" OverwriteReadOnlyFiles="true" Condition="'%(Content.Link)' != ''" />
</Target> 

对 .csproj 文件的这种编辑将导致 Visual Studio 实际将链接文件复制到生成结束时的链接位置。

这样,您仍然可以在项目中引用~/Scripts/Controls/SomeScript.js

使用此参考来解决您的问题:Server.MapPath("."),Server.MapPath("~"),Server.MapPath(

@"''"),Server.MapPath("/")。有什么区别?

似乎最好的方法是在开始时使用/- 那是根目录.. 您可以从那里向下管理