【问题标题】:Axure output for Django templatesDjango 模板的 Axure 输出
【发布时间】:2026-02-14 01:00:01
【问题描述】:

我对 Web 编程很陌生,并开始使用 Django。我使用了默认教程和其他一些示例,一切正常。但是,现在我面临以下问题:我在 Axure 中创建了一个原型,并希望将其与我现有的项目集成。使用 Axure 我生成了 html/css 文件并在 Django 中创建了一个“家庭”应用程序。问题是当我将 Axure 的输出放在模板/主文件夹中时,它能够加载默认的 home.html,但会丢失图像和 css 文件。

我家的应用结构是这样的:

-首页

--模板

---首页

----数据

----文件

----图片

----插件

----资源

----home.html

<div id="u0" class="ax_h1">
    <img id="u0_img" class="img " src=""/>
    <img id="u0_img" class="img " src="resources/images/transparent.gif"/>
    <!-- Unnamed () -->
    <div id="u1" class="text">
      <p><span>Some text </span></p>
    </div>
  </div>

它能够在 Pycharm 中解析这个路径(不给出任何错误)。如果我去文件夹本身并运行 home.html 一切都很好。但是如果我运行整个项目并 o 到主页,它似乎找不到文件的路径.. 显示图标,但没有实际图像。

有人可以帮忙吗?

【问题讨论】:

    标签: python html css django templates


    【解决方案1】:

    你需要设置你的静态文件properly

    确保django.contrib.staticfiles 在您的INSTALLED_APPS

    STATIC_URL = '/static/'(或任何您想要的静态网址)添加到您的settings.py

    将静态文件放在您应用中名为 static 的文件夹中

    home/
        templates/
            home/
                home.html
        static/
            images/
                transparent.gif
            css/
            js/
            ...
    

    然后,你可以使用

    <div id="u0" class="ax_h1">
        <img id="u0_img" class="img " src=""/>
        <img id="u0_img" class="img " src="{{ STATIC_URL }}images/transparent.gif"/>
        <!-- Unnamed () -->
        <div id="u1" class="text">
          <p><span>Some text </span></p>
        </div>
      </div>
    

    【讨论】:

    • 我的 INSTALLED_APPS 中确实有 django.contrib.static 文件,并且在 settings.py 中设置了 STATIC_URL = '/static/'。 1)我尝试了您的解决方案,将 {{ STATIC_URL }} 放入多个链接,但它不起作用(当然,我复制了所有文件)。但是,添加像 src="static/images/transparent.gif" 这样的“static/”是有效的。我不明白为什么 {{ STATIC_URL}} 不这样做,因为我不想对所有链接进行硬编码。有什么线索吗?
    • 2) 有没有办法创建另一个 HOME_URL = '/templates/home/' 来指向带有 {{HOME_URL}} 的文件?我试过这个,但没有结果。问题是我已经创建了很多 html/css/js 文件,我不想通过所有这些文件来更改路径。提前谢谢!
    • 我也用这个 STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'django.contrib.staticfiles.finders.FileSystemFinder', )