我试图在iis 6上关闭Etags因为我加载了多个服务器,我不希望etag成为问题.
在我的一个项目中,我的用户将拥有我网站的专用部分({username} .example.org).在该子域中,我计划允许他们轻松地更改设计.我看了一些已经做过的在线网站,比如Tumblr,Posterous和Shopify.
关于这个应用程序的语言,我用Django开始,我成功实现了"基于url名称的模板呈现,默认为回退"(http://someuser.example.com将在templates/someuser /中加载模板)*或在模板/通用/*中如果没有在第一个中找到).但是如果它们更适合我的需要,我可以将它导出到PHP或Play!Framework.
使用的模板引擎是Jinja2,因为它像Django模板引擎一样简单,易于学习和安全(没有Python coode可以(通常应该!)执行).
以下是我发现的每种解决方案的优缺点.我真的很感激你对此的看法以及你会采取哪种方式,为什么.谢谢.
注意:用户将对HTML/CSS有很好的了解.
改变变量(如标题颜色等)
优点:
缺点:
只上传CSS
优点:
缺点:
允许用户编辑模板(存储在数据库中)
优点:
缺点:
允许用户编辑模板(存储在文件中)
优点:
缺点:
另外,我遇到的问题是如何处理静态文件(图像,css,js):我看不到如何在Apache(或NGinx)中定义一个虚拟主机,它会请求数据库查看哪个用户属于这个网址.
谢谢你的帮助,我感谢!
我有一个Global.asx文件,需要进行自定义身份验证,审核和分析.这是必需的,因为它支持基于SAML的SSO系统,需要覆盖正常的.Net身份验证(不支持SAML或混合身份验证)
我不想启动它的静态文件,如.js,.css,.png,等
在Cassini/WebDev和IIS7中确实如此.
我想要的是一些简单的检查,比如this.Request.IsStaticFile(不幸的是,它不存在)来识别静态文件.
我意识到编写它会相当简单,但感觉就像已经存在的东西 - IIS已经为静态文件应用了缓存策略等等.
我需要一个代码解决方案,而不是IIS配置更改一个.
更新
这是我目前的解决方法:
/// <summary>Hold all the extensions we treat as static</summary>
static HashSet<string> allowedExtensions = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
{
".js", ".css", ".png", ...
};
/// <summary>Is this a request for a static file?</summary>
/// <param name="request">The HTTP request instance to extend.</param>
/// <returns>True if the request is for a static file on disk, false otherwise.</returns>
public static bool IsStaticFile(this HttpRequest request)
{
string fileOnDisk = …Run Code Online (Sandbox Code Playgroud) 如何在ASP.NET MVC5中使用静态文件实现相同的行为,例如它在aspnet-core上的正常工作app.UseDefaultFiles(); app.UseStaticFiles();?
我的意思是从根目录下的某个文件夹提供静态文件,例如/wwwroot/some.html必须在mysite.com/some.html,等等上/wwwroot/img/test.jpg打开mysite.com/img/test.jpg。
更新:我已经创建了wwwroot文件夹,并将以下规则添加到web.config:
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite Static" stopProcessing="true">
<match url="^(?!(wwwroot/|api/))(.*)$" ignoreCase="true"></match>
<action type="Rewrite" url="/wwwroot/{R:1}" />
</rule>
</rules>
Run Code Online (Sandbox Code Playgroud)
所以,IIS必须返回文件wwwroot除了当来电去/api/something,但我一直都想与index.html在wwwroot文件夹中,从来没有其他文件。Api的网址效果很好。
我做错了什么?
我现在将我的小型Google App Engine应用程序迁移到Heroku平台.我实际上并没有使用Bigtable,并且webapp2大大降低了我的迁移成本.
现在我一直坚持处理静态文件.
有没有好的做法?如果是的话,请带我到那里.
提前致谢.
编辑
好吧,我现在正在使用paste我的WSGI服务器.而且paste.StaticURLParser()应该是什么我需要实现静态文件处理程序.但是我不知道如何将它与它集成webapp2.WSGIApplication().谁能帮助我?
也许我需要覆盖webapp2.RequestHandler类才能paste.StaticURLParser()正确加载;
import os
import webapp2
from paste import httpserver
class StaticFileHandler(webapp2.RequestHandler):
u"""Static file handler"""
def __init__(self):
# I guess I need to override something here to load
# `paste.StaticURLParser()` properly.
pass
app = webapp2.WSGIApplication([(r'/static', StaticFileHandler)], debug=True)
def main():
port = int(os.environ.get('PORT', 5000))
httpserver.serve(app, host='0.0.0.0', port=port)
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
我有一个大型网站,在各个 html 页面中包含数百个 href=".html、href="css/、href="img/ 和 src="js/ 引用。我已将所有 css、js、img、声音等文件夹放在“static”文件夹中,并将所有 html 文件放在“模板文件夹”中。
我不想浏览所有 html 文件并使用 Flask 的“url_for”函数手动编辑每个 href。
有没有一种方法可以让我保留现有的 html 文件并告诉 Flask 使用这些 html 文件中定义的 css/、js/ 和图像路径?
现在以下代码会导致一堆 404 错误
import os
from flask import Flask, render_template
PROJECT_PATH = os.path.dirname(os.path.realpath(__file__))
app = Flask(__name__,
template_folder=os.path.join(PROJECT_PATH, 'templates'),
static_folder=os.path.join(PROJECT_PATH, 'static')
)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080, debug=True)
Run Code Online (Sandbox Code Playgroud)
好的,根据 Martijn 的脚本,我使用以下代码运行了我的网站。但是,为了捕获 index.html 文件中的许多 href=someHTMLfile.html 链接,我添加了 @app.route('/')。我想知道是否有更好的方法来做到这一点?
from flask import Flask, render_template, safe_join, send_from_directory
app = Flask(__name__)
@app.route('/<any(css, js, img, fonts, …Run Code Online (Sandbox Code Playgroud) 我在使用 Node.Js/Express.js 的 Windows 环境中遇到问题,静态 JS 文件可以在浏览器中标记为“待处理”(禁用缓存)长达两分钟,之后它们似乎可以正常下载. 这通常发生在几次刷新后。
没有显示任何错误,所以我不确定如何进一步调查。相同的代码在 Mac OSX 环境中运行良好。
Node 版本是 v0.10.31,Express 是 4.8.5。
静态文件的代码是:
app.use(express.static(path.join(__dirname, 'public')));
Run Code Online (Sandbox Code Playgroud)
Chrome DevTools 显示:

我有一个基于 Symfony 框架的网络应用程序。
我有一个 php-fpm 图像,其中包含所有 php 和 asset 文件。
现在我想通过 nginx 容器提供文件。php部分很简单。但是我如何提供 php-fpm 图像中包含的静态文件呢?
我尝试创建一个由两个容器安装的卷。但是,在首次启动后,docker 将文件从映像复制到卷中后,在我更新映像后,文件不再更新。
我可以在容器启动后将文件从第二个目录复制到卷中以解决此问题,但我不希望产生这种开销。
有谁知道我可以共享静态文件,以便它们可以直接由 nginx 容器提供服务吗?
我的码头工人组成:
version: '3'
services:
nginx:
image: nginx:1.15-alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./data/nginx:/etc/nginx/conf.d
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
- static-content:/var/www/app/web
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
php:
image: pbnl/scotoobo-php:dev
volumes:
- static-content:/var/www/app/web
environment:
- database_host=db
volumes:
static-content:
Run Code Online (Sandbox Code Playgroud)
我的 Dockerfile
FROM php:7.1-fpm
RUN usermod -u …Run Code Online (Sandbox Code Playgroud) 我想制作一个应用程序,我需要基域上的静态页面和子目录上的 Blazor 应用程序。
例子:
https://example.com 是我的静态页面应该在哪里(如“/features”或“/pricing”或“/faq”)
https://example.com/app 应该是我的 blazor 网站所在的地方。
我已经看到我可以传入一个PathStringtoapp.UseBlazorFrameworkFiles但这不起作用 ( app.UseBlazorFrameworkFiles(new PathString("/app"))。我的 Blazor 应用托管在带有 gRPC 的 .NET 5 WebApi 项目上。
有人可以指出我如何实现这一目标的正确方向吗?
提前致谢!
Express 能够在不同的虚拟位置提供静态文件:
app.use('/static', express.static('public'))
Run Code Online (Sandbox Code Playgroud)
但是,我在使用 Spark Java 的服务器上使用 Java。我知道如何提供静态文件,但 Spark Java 是否可以在虚拟位置提供静态文件?如果可能,如何?我已经搜索了一段时间,但我找到的所有教程都只是告诉我如何提供静态文件,而不是在虚拟位置提供静态文件。
编辑:“虚拟位置”的解释:假设这是当前目录:
public/
|-----index.html
|-----style.css
|-----etc...
Run Code Online (Sandbox Code Playgroud)
然后,我们可以http://localhost:8080/public/index.html
用
http://localhost:8080/somedir/virtual/pathindex.html
static-files ×10
asp.net-mvc ×2
python ×2
.net ×1
asp.net ×1
blazor ×1
docker ×1
express ×1
flask ×1
global-asax ×1
heroku ×1
iis ×1
iis-6 ×1
java ×1
javascript ×1
metadata ×1
nginx ×1
node.js ×1
php ×1
routes ×1
server ×1
spark-java ×1
templates ×1
webapp2 ×1