【问题标题】:ASP.NET - Content, Styles, Scripts, Images, Resources folders are not getting copied over to Publish folder while Publishing (for deployment)ASP.NET - 内容、样式、脚本、图像、资源文件夹在发布时不会被复制到发布文件夹(用于部署)
【发布时间】:2022-10-14 04:13:25
【问题描述】:

我是一家公司的新人独立开发人员,我正在尝试将现有的 ASP.NET 网站部署到开发和生产环境。我认为这是一个 WebForms 项目(我不确定如何弄清楚这是什么类型的项目)。

当我使用 Visual Studio 将网站发布到文件夹时,除了 Content、Styles、Scripts、Images、Resource 文件夹之外的所有内容都会正确发布。因此,在 IIS 上部署后,网站仅加载 HTML,没有样式、主题或图像。发布完成后,我必须手动将这些文件夹从代码仓库复制到发布文件夹。

我怎样才能解决这个问题?

工具:ASP.NET、Web 表单(我认为?)、Visual Studio 2013

【问题讨论】:

    标签: c# asp.net visual-studio webforms


    【解决方案1】:

    这表明您正在工作并试图将这个网站作为一个网站应用程序来维护。

    请记住,一个网站?

    这包含所有文件夹,包括您的 css 文件等。此文件夹被假定为 100% 有效的网站工作副本。通常,开发人员会直接在托管服务器上“实时”打开网站。这不是一个好主意,但它很容易,因为你可以说打开一个网页,修改它,然后保存,你就完成了!!!

    实际上,不需要真正的发布。您有一个运行 Web 服务器 (IIS) 的完整工作网站。

    如果您想处理副本,那么您可以/可以从 wwwroot 或 IIS 网站当前正在使用和使用的任何文件夹复制整个网站。

    然后,您可以始终使用文件->打开网站打开网站。在任何情况下,您都不会也不希望将该网站作为网站项目或所谓的应用程序打开。 (那将是 prj 或 sln 文件)。

    但是,您可能有一个 asp.net 网站应用程序。 (这里的关键概念/词是“应用程序”。

    对于应用程序,是的,您确实需要使用网站发布。该发布将编译所有代码,删除 c#(或 vb.net)代码,将它们编译为 .dll。因此,生成的文件夹发布将删除许多部分,包括源代码,并且代码将由 Visual Studio 预编译,而不是让网站 (IIS) 编译此类代码。

    有了这个选择,您当然必须标记/检查/设置/确保/控制/知道/知道/任何其他文件夹都必须标记为项目的一部分。事实上,VS 应该将此类文件夹显示为“灰色”,而不是发布过程的一部分。

    比如说,我有一个包含一堆 css 和其他文件的文件夹。因此,右键单击该文件夹并检查设置。

    假设从 VS 为我称为内容的文件夹执行此操作。 (在我的情况下,该文件夹中有很多css和其他东西)。这是一个“应用程序”

    因此,右键单击并检查:

    注意上面非常接近 - 从项目中“排除”。

    此外,您可以右键单击该文件夹中的任何文件,并显示属性表,并且您有这些选项(发布将使用)。

    所以,我右键单击名为 Burke.css 的文件,然后我们得到这个:

    因此,请检查那些丢失文件的选项。并检查文件夹的选项(从项目中包含/排除)。

    我的蜘蛛感觉表明这是一个网站,而您试图将这个网站工作/更改/开发/使用这个网站作为一个网站项目。

    随着时间的推移,您当然可以转换为“应用程序”,虽然我更喜欢“应用程序”而不是网站,但通常很多人更喜欢网站,因为它根本不需要您使用发布选项。

    您可以非常容易地找出 - 只需查看在 IIS 上运行的网站 - 它是否包含该站点上的 vb.net(或 c#)文件?如果这些文件背后的代码存在,那么你有一个网站,而不是一个网站应用程序。

    【讨论】:

      猜你喜欢
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 1970-01-01
      • 2020-02-21
      相关资源
      最近更新 更多