如何在IIS上使用django获取静态CSS文件?

Yur*_*ura 19 django

我在IIS8上安装了django.现在我想配置它来提供静态文件.我一直在关注这个教程

我已将此添加到settings.py中

STATIC_URL ='/ static /'

STATIC_ROOT ='C:/ my_django_project/NZtracker/static_for_production /'

STATICFILES_DIRS =('C:/ my_django_project/NZtracker/static /',)

然后运行collectstatic.

因此,所有静态文件夹都已移至C:/ my_django_project/NZtracker/static_for_production /.

接下来,我试图配置IIS来提供该文件夹中的文件但不能.(我试过这篇文章,但它也没有用)

我该如何解决?谢谢

Yur*_*ura 33

是的,我是新手.有时我问"新手问题",和其他许多人一样.但显然,在这个网站上没有这样的问题的空间(这就是为什么我在最初的问题上得到了最低限度的投票并被禁止退出本网站 - 这是我在本网站上写的最后一个答案).伙计们,人们会问问题,因为他们诚实地寻求帮助并希望能够得到帮助.他们不是为了激怒你们中的任何一个人(你可以投票来关闭这个答案,如果这让你感觉良好)


无论如何,经过2天的努力,为了那些有同样问题的人,我想分享(可能是一个常见的)问题的逐步解决方案.

问题

您已经在IIS上启动了一个django项目,它在您的localhost上完美运行.现在,在将其部署到Web服务器时,不会获取静态文件(CSS,JS,images,..).你可以在这里这里阅读,但事实上,你不希望所有这些配置和文件从一个目录复制到另一个目录......

你想要的是你的IIS服务器将从静态/目录中获取静态文件,就像开发服务器(你用python manage.py runserver运行的那个)那样. 在此输入图像描述

1)在static /目录中,创建一个名为web.config的新文件(注意,你可能在上层目录中有另一个web.config文件 - 不要触摸它.只需保留原样). 在此输入图像描述

2)将以下内容写为此文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->
    <handlers>
    <clear/>
      <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
    </handlers>
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

3)转到您的IIS服务器 - >右键单击站点名称 - >添加虚拟目录 在此输入图像描述

4)在别名中写了"静态"(这是必须的).然后,导航到项目中所有静态文件所在的文件夹

在此输入图像描述

5)运行IIS服务器并进入您的网站.它应该工作.

  • 谢谢.我正在努力解决这个问题,谢谢你我修好了.我同意你的看法,这个网站对新人过于激进.有时人们可以阅读文档但仍然无法解决问题.这个网站不是互相帮助吗?如果你要回答我,我应该阅读文档,我首先不打算问.再次@Yura,谢谢你. (2认同)
  • 这正是我所缺少的......谢谢! (2认同)

小智 10

Yura的答案非常完整.我想有另一种方法.

右键单击网站并转到添加应用程序,输入别名(使用'静态'),然后输入静态文件文件夹的物理路径.按确定.
现在,在为静态文件夹创建的应用程序中,棘手的部分转到句柄映射并删除到FastCGI站点处理程序的映射.进入你的网站,它的工作原理!

它与Yura的答案非常相似,但使用IIS界面而不是自己编写web.config文件.