Flask app无法通过相对路径找到javascript文件?

时间:2015-01-19 08:27:54

标签: flask

在我的Flask应用中。如果网页的路径为http://example.com/product/6。我无法在此页面的html文件中导入js文件,如下所示:

<script src="js/main.js"></script>

浏览器将在http://example.com.product/js/main.js中搜索js文件,并返回404错误。

那么,我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:2)

您应该让您的静态资源使用根目录(如果您将其全部保留在那里)。

因此,如果您的目录如下所示:

.
├── app.py
└── static
    ├── css
    ├── img
    └── js
        └── main.js

尝试在您的JavaScript网址上添加/,这样就不会将其附加到网页网址上。

e.g。然后<script src="js/main.js"></script>将转到http://example.com/js/main.js

仅供参考 - 你应该使用apachenginx之类的网络服务器为静态文件提供服务,因为它们比Flask要好得多。

答案 1 :(得分:1)

您应该使用url_for生成静态资源的网址。

<script src="{% url_for('static', filename='js/main.js' %}"></script>